Matlab程式設計筆記之GUI程式轉exe

2022-07-17 12:00:12 字數 2719 閱讀 8044

matlab同樣可以製作出和vc++技術一樣的基於對話方塊的gui介面。

在matlab軟體中編寫gui程式的方法是:命令列中輸入guide,即可進入。

matlab是強大的數學建模軟體,我們可以通過matlabgui編寫視覺化的數學程式,方便我們的操作。

製作好的matlabgui介面程式如何轉化成windows下的可執行檔案(字尾名字exe)、matlab程式如何在沒有matlab軟體的電腦上執行。下面這篇文章來解決上述的問題。

網上有很多零零散散的教程,寫的亂七八糟,在此我進行了總結,總結出最全的幾種方法(每一種都是親自試過並截圖)。

一、      生成獨立可執行的程式(exe檔案)步驟

注意:matlab安裝的時候盡量選擇全部安裝,這樣會為以後省下很多事情,比如當時你沒有全部安裝,此時matlab 自帶的編譯器你需要單獨安裝,這就比較麻煩了(需要找到你得版本對應的編譯器,再進行安裝)

注意:對matlabgui程式轉成可執行檔案需要對matlab程式進行編譯,有兩種方法,一種是使用matlab自帶的編譯器lcc,但是這個不是很好用,個人不推薦。第二種是使用你電腦上的編譯器,個人推薦使用vs編譯器。

注意:如果matlab軟體先安裝,而vs2010後安裝,這時在執行以下操作的時候會出錯,matlab會顯示找不到編譯器。解決辦法就是首先安裝vs,再安裝matlab,不過一般程式設計人員電腦上都有vs,這種出錯機會很小。這一點錯誤我是親身體驗過的。

注意:vs一定要預設路徑安裝,否則matlab很有可能出現找不到編譯器的,如下圖:

為了演示步驟,我們在matlab中新建乙個gui程式,也就是字尾名為fig的程式,我們的目的就是將該檔案轉成可執行檔案。

檔名為example。執行如圖(什麼都沒寫)

第一種方法:

1、安裝編譯器。可有多種選擇,matlab自帶了乙個lcc,推薦使用電腦上自帶的vs2010(版本是多少都無所謂),我基於vs 2010實現。

2、設定編譯器。在matlab命令列輸入mbuild –setup以及mex –setup,選擇安裝的c編譯器。如下圖:

3、mcc -m filaname, filaname為要轉成exe的m檔案;

注:在以前的版本中,用編譯命令mcc -b sglcpp filaname;自2006的版本後,替換為mcc -mfilaname;

4、安裝\toolbox\compiler\deploy\win32目錄下的mcrinstaller到目標目標電腦上,此時我們就可以在沒有matlab軟體的電腦上執行該軟體了。

注意:脫離matlab執行可執行程式

mcr是由matlab的執行環境,占用不到300m的對於用不同matlab版本生成的exe檔案,mcr版本也會有不同,因此,在程式打包時,最好將相應版本的mcr一起打包。mcr環境的設定檔案存放目錄如下:

\toolbox\compiler\deploy\win32

檔名為mcrinstaller.exe。可將其拷貝到自己的資料夾中,(7.0以前的版本是mglinstaller.exe)。

在matlab裡執行可執行程式的辦法是在前面加乙個!,比如:!picshow,字尾名可有可無。

在其它沒有安裝matlab的機器上執行exe檔案前:

首先安裝matlab的執行環境。在同一機器上可以並存不同版本的matlab環境(換句話說不同版本不相容)。

其次是要將「mcrinstaller.exe安裝目錄\runtime\win32」這個路徑新增到該計算機的環境變數中,通常是自動載入。

如果沒有,也可手動安裝,新增的方法是:

右擊「我的電腦」「屬性」「高階」「環境變數」「新增」指定乙個變數名,然後將上述路徑複製到裡面就可以了。

注:在安裝過程中會彈出讓安裝microsoft.netframework可以不用安裝。

最後就是將編譯生成的相相關檔案拷貝到同一目錄下,雙擊即可執行。

問題:目前此方法可完全執行在沒有安裝matlab以及c/c++的電腦上,但是如果是在amd的cpu可以執行,但是不會出現任何matlab編譯的介面。

美中不足就是,執行的時候dos的那個黑色地視窗一直存在。下面將實現去除黑屏的辦法:

消除執行matlab生成的exe程式的dos黑屏的辦法

基於matlab生成exe檔案後,每次執行都存在dos黑屏的問題,現在可以通過以下方法解決:

方法一: 在命令視窗輸入

cd(prefdir)

edit compopts.bat

在開啟的檔案最後新增以下語句:

a.vc環境下:

set linkflags=%linkflags%/subsystem:windows /entry:maincrtstartup

b.lcc環境下:

set linkflags=%linkflags% -subsystemwindows

c. borland:

set linkflags=%linkflags% -aa

儲存以後,再重新編譯m檔案,生成的exe檔案執行起來就沒有dos視窗了

Python之GUI程式設計

然後解壓到合適的路徑下,這裡解壓到了桌面。在cmd終端輸入以下 cd desktop cd 解壓的檔名 cd 一直到最後乙個子資料夾 cd python setup.py install 完成推薦使用最後一種方法。import easygui easygui.msgbox 嗨,你好呀 from ea...

matlab基礎程式設計筆記

與c語言不通 在matlab中使用比那輛可以不預先定義。命名規則 matlab的變數命名必須以字母開頭,之後可以在任意字 母,數字或者下劃線,同時變數命名不能有空格,變數名稱區分大小寫 matlab預設的預定於變數 ans 計算機結果的預設名稱 eps 計算機的零閾值 inf inf 無窮大 pi ...

Matlab程式設計 筆記一

1.函式路徑 不得不吐槽一下,matlab的自定義函式 真的是很隨意,隨意到你可以進行改動,還沒辦法使用簡單的方法進行固定,進行加密或者編成mex函式。很麻煩 2.判斷矩陣相同 isequal a,b 可能一開始會自然地使用a b或者 a b,但很明顯是錯的 因為這其實是乙個邏輯判斷語言,最後的值是...