Tạo file .exe cho giao diện GUI Matlab

April 27, 2008 by ngohaibac  
Filed under Giao tiếp RS232, Matlab

Chào các bạn.

Sau khi các bạn đã biết cách để viết một giao diện GUI, biết cách dịch ra file .exe tự chạy trên một máy khác thì bây giờ mình kết hợp làm sao đây ??

Bài này mình dịch một project GUI tương đối là nhiều thành phần: RS232 Communication đã được post trong bài Lập trình giao tiếp RS232 qua Matlab

Bước 1: Thiết lập môi trường dịch (bước này bỏ qua nếu đã làm rồi )

Bước 2: Gõ lệnh deploytool và vào menu File chọn New Project, chọn Standalone Application, chọn tên project và nơi lưu project.

Giao diện Deployment Tool sẽ gồm có Main function, Other files và C/C++ files.

Một project GUI sẽ gồm có 2 file .m và .fig và có thể thêm các file .m và .fig nếu gọi các figure khác. Như vậy file add vào trong Main Function là file .m là file chính sẽ chạy project GUI đó.

Các bạn browse đến thư mục RS232 Communication và sẽ thấy nó chỉ cho phép chọn file .m. Ở đây mình phải chọn file RS232_Communication.m vì là file chính, còn modaldlg.m là file để mở cửa sổ yêu cầu chọn Yes, no.

Tiếp tục, click chuột phải vào Other files, chọn Add files và add các file còn lại trong project (chỉ các file .m và .fig thôi).

Xong xuôi thì giao diện sẽ ra như thế này:

Bước 3: Dịch project

Bây giờ là bước dịch, các bạn vào menu Tools -> Build (Ctr + B). Sau đó đi uống nước chờ nó dịch xong hehe. Cái này chờ lâu phết, đừng có nóng nhé. Không báo lỗi gì thì ok ngay.

Xong vụ rồi thì vào thư mục \distrib sẽ thấy file .exe của mình. Nhấn thử vào chạy xem thế nào.

Còn muốn đem sang máy khác thì phải đóng gói, vào Tools chọn Package (Ctr + P):

Sang máy không cài Matlab thì copy đồng thời file package và McrInstaller vào một thư mục, chạy ngon lành luôn. Mình thử nghiệm rồi.

Chạy nó sẽ ra thế này:

RS232_Communication_exe.zip

Mình có upload file .exe mà mình đã dịch làm bằng chứng he he.

Các bài viết liên quan:

Enter Google AdSense Code Here

25 Comments

  • At 2008.04.27 21:19, hung_dtvt said:

    Bác này biết nhiều về MATLAB ghê.

    • At 2008.04.28 01:47, admin said:

      Bình thường mà em. Em xem và thử nghiệm hướng dẫn của anh đi nhé.

      • At 2008.04.28 22:24, botloc said:

        ở bước 1: anh có thể giải thích giùm môi trường dịch ở đây là gì không, em đọc mà chẳng hiểu?
        Em đánh lệnh deploytool mà đâu có được, em dùng cả matlab 6.5 và 7 cũng kô được, nó báo lỗi là “Undefined function or variable ‘deploytool’.”. Anh có thể giải thích giùm em. :(

        • At 2008.04.28 22:57, admin said:

          Chào em.

          Có lẽ Deploytool này chỉ có từ bản Matlab R2006 hay R2007 trở đi thì phải. Mình chưa khảo sát kĩ.

          Bạn kiểm tra xem trong Help có toolbox Matlab Compiler thì sẽ có thể dịch được ra file .exe, tuy nhiên bạn phải gõ lệnh thôi.Có lẽ mình phải viết bài hướng dãn này.

          Còn môi trường dịch thì nếu đã có Matlab Compiler thì mặc định lựa chọn 1 sẽ luôn có, còn không cài toolbox này thì chắc là không có rồi.

          • At 2008.04.29 05:54, hung_dtvt said:

            Ủa e có cái Help Matlab Compiler sao gõ lệnh Deploytool vẫn bị báo lỗi như bạn trên là sao a nhỉ?

            • At 2008.04.29 12:36, admin said:

              Em có Matlab Compiler nhưng version của Toolbox đó không support Deploytool, em phải dùng lệnh như mcc - chứ không dùng được giao diện này.

              Tốt nhất em nên mua phần mềm Matlab bản mới nhất dùng cho thoải mái.

              • At 2008.05.01 04:27, hung_dtvt said:

                À thế e dùng cái Matlab builder for COM có thể dịch được không vậy a? Đã làm thử nhưng báo lỗi nên ko thực hiện tiếp được. Thế cho e hỏi thời gian của thực hiện 1 chương trình trong GUI và chương trình sau khi dịch ra file .exe thì có giống nhau ko?Thanks a

                • At 2008.05.01 11:19, admin said:

                  Anh chưa dùng Matlab builder for COM nên chưa nói được gì cho em cả.

                  Còn tất nhiên là thời gian thực hiện 1 chương trình trong GUI và sau khi dịch là phải giống nhau rồi em. Mà có khi nhanh hơn vì không khởi động Matlab mà :D. Các thư viện cần thiết đều được dịch hết rồi em ạ. Em xem một file package nó lên đến gần 10MB cơ mà.

                  Chúc em thành công.

                  • At 2008.06.30 19:24, Minh Tam said:

                    Em biên dịch file adder.m bằng lệnh :mcc -m adder.m
                    theo file help của Matleb nhưng khi chạy file adder.exe thì chỉ chạy ra màn hình lệnh của dos thôi. Anh làm thử và chỉ giúp em đã sai chỗ nào với.
                    Cám ơn nhiều.

                    • At 2008.06.30 19:30, Minh Tam said:

                      Được rồi anh ơi. Ra rồi.

                      • At 2008.06.30 23:49, admin said:

                        Chào em.

                        Chúc mừng em đã thành công khi dịch nhé.

                        Khi chạy file .exe thì em phải chờ một tẹo nha. Nhất là khi chạy lúc đầu nó phải dịch ra một file gì đó nữa anh quên rồi.

                        Chúc em thành công.

                        • At 2008.07.24 04:50, tmtm said:

                          Chào bạn, mình không biết nhiều về các ngôn ngữ lập trình. Mình cũng đang tìm hiểu để tạo một giao diện cho giao tiếp RS232 giữa PC và PIC. Theo bạn, với vấn đề này thì giải quyết bằng Matlab hay VB hay VC++ cái nào dẽ dàng và hệu quả nhất (mình cũng đã xem về vấn đề này bên picvietnam nhưng thật sự là chưa nắm được nhiều)? à, mình ko có đĩa cài VB 6.0 và VC++ nên mình vào trang của microsof download VB 2008 và VC++ 2008 về, nhưng thấy bảo cái này và cái VB 6.0 … có nhiều điểm khác nhau phải ko bạn? Cái nào thông dụng và dễ dùng hơn?

                          • At 2008.07.25 00:48, admin said:

                            Chào bạn.

                            Giao diện thì có nhiều chương trình để viết như VB, VC++, Matlab, … tuy nhiên cái nào dễ dang thì còn tùy thuộc vào thói quen sử dụng của bạn mà thôi. Mỗi chương trình có điểm mạnh và yếu riêng.

                            VB2008 và VC++2008 là bản .Net còn bạn định dùng là bản 6.0. Mấy cái này có khác nhau đôi chút thôi. Dùng bản 2008 sẽ cảm thấy thích thú hơn nhiều.

                            Chúc bạn thành công.

                            • At 2008.07.25 03:00, tmtm said:

                              Cảm ơn bạn! Bạn có thể so sánh ưu nhược điểm giữa VC++ và Matlab trong việc giải quyết vấn đề này giúp mình được ko?

                              • At 2008.07.25 08:32, admin said:

                                Vấn đề của bạn chỉ là giao tiếp giữa PC và PIC qua RS232 thôi. Nên cái gì cũng làm được cả.

                                Tuy nhiên, nếu thiên về tính toán, xử lý nhiều dữ liệu thì nên dùng Matlab. Còn chỉ đơn giản là giao diện và xử lý đơn giản thì dùng VC++.

                                Còn vấn đề bản quyền nữa, cũng nên xem xét khi triển khai ứng dụng.

                                Chúc bạn thành công.

                                • At 2008.09.01 03:30, votinh66 said:

                                  Cho e hỏi:có cách nào làm mất màn hình dos khi chạy file exe ko?Em lập trình giao diện rùi nên khi chạy ko cần hiện lên màn hình dos.Em cám ơn!

                                  • At 2008.09.01 05:34, ngohaibac said:

                                    Chào em.

                                    Không có cách nào đâu em ạ. Khi chạy nó phải hiện ra cái màn hình DOS ấy, giống như khi chạy Matlab cần phải có cửa sổ Command Windows đó, nó sẽ hiện lên các kết quả, …

                                    Chúc em thành công.

                                    • At 2008.09.01 07:07, votinh66 said:

                                      cám ơn anh nhiều. :)

                                      • At 2008.09.01 17:34, ngohaibac said:

                                        Không có gì em ạ.Cố gắng lên nhé.

                                        Chúc em thành công.

                                        • At 2008.09.02 07:58, Lê Minh Huy said:

                                          Hay quá ! Anh có thể hướng dẫn tạo file .dll ko? Em tìm nhưng chưa thấy có hướng dẫn step by step . Nên gặp nhiều trở ngại quá. Mong anh reply sớm.

                                          • At 2008.09.02 17:41, ngohaibac said:

                                            Chào em.

                                            Anh chưa làm ra cái .dll này. Nhưng anh nghĩ,nó chẳng khác gì so với các bước mà anh hướng dẫn cả. Chỉ có output là khác nhau mà thôi.

                                            Em thử làm xem rồi report nhé.

                                            Chúc em thành công.

                                            • At 2008.09.21 18:18, Saochoihaxlay said:

                                              Anh Bac cho em hoi lam sao tao duoc file .fig trong khi viet vay?Em viet ham xu ly anh nhung hok biet viet file .fig nen no bao loi

                                              • At 2008.09.22 01:34, ngohaibac said:

                                                Anh không hiểu ý của em như thế nào cả. Sao lại không biết viết file .fig nên báo lỗi ??

                                                • At 2008.11.10 10:09, DUNG_HUT said:

                                                  Anh Bắc ơi cho em hỏi. Sao em copy đồng thời file package và McrInstaller vào một thư mục rùi cho chạy sang máy không cài matlab mà ko được nhỉ. Em làm tất cả các bước đều được giống như của anh.
                                                  thanks.

                                                  • At 2008.11.12 02:32, ngohaibac said:

                                                    Chào em.

                                                    Không được là như thế nào em ?

                                                    Chạy file package xong nó bắt cài MCRInstaller, cài xong thì chạy cái file .exe nó giải nén ra đó là được.

                                                    Chúc em thành công.

                                                    (Required)
                                                    (Required, will not be published)

                                                    Chọn kiểu gõ: Tự động TELEX VNI Tắt