MATLAB是一款功能強大的軟件,我們不僅可以通過編寫代碼來實現各種功能,還可以使用它的GUI(Graphical User Interface)界面,讓我們編寫的程序,通過圖形直觀地輸出。接下來我就通過一個簡單例子大概介紹介紹一下GUI界面的編寫的過程,并進行封裝生成exe文件,即使不打開Matlab也可以獨立運行,真正打造屬于你自己的App。
首先,我們來新建一個GUI界面,我們可以通過再命令行窗口輸入guide,來打開新建GUI界面或者通過依此點擊>新建>App>GUIDE 來打開新建GUI界面的窗口,具體如下圖所顯示
已保存
新建一個空的GUI后,會彈出一個窗口,如下圖所示
可以看可以看到界面的左邊有很多的小圖標,這些就是GUI中的控件也是我們要進行操作的對象。不同的控件具有不同的功能,有只用來顯示文字的文本框、可編輯的文本框、按鈕等等。我就不做一一介紹,在這里只介紹幾個簡單常用的控件,如下圖所示。
圖中列舉了幾個簡單常用的控件,我們從上到下依次介紹
- 按鈕:顧名思義就像生活中的按鈕一樣,可以按下并實現某些功能,我們在GUI中的很多操作可以通過點擊按鈕來完成。
- 可編輯文本:字面上就能看出來,在這個文本框內,里面的內容我們是可以編輯的。
- 靜態文本:不可編輯的文本,通常用來對某些控件進行說明。
- 彈出式菜單:對它進行操作的時候會彈出我們事先設定的選項供我們選擇。
- 坐標軸:這個大家可以理解成一個用來顯示圖片,進行繪畫的界面部分就行。
接下來就是在GUI中如何來操作這些控件,在此之前,我們需要先來了解,我們能操縱控件的什么(也就是控件的屬性)。控件都有哪些屬性呢,我們以可編輯文本為例做說明,當我們新建一個可編輯文本后,雙擊這個控件,就會彈出下圖所示的界面
界面左側就是可編輯文本框各個屬性的名稱如字體大小、字體顏色、‘String’等等,右邊對應了屬性的值或者內容,我們可以在這里進行直接編輯或者像通過代碼進行編輯。同樣的我們也可以通過代碼來獲取控件各個屬性,正是基于這個我們才能通過GUI來實現各個控件的聯動,從而實現我們想要達到的效果。在屬性界面,尤其要注意的就是圖上中紅色框框標出的部分,見下圖。
String的內容表示了控件顯示出來的文本,Style則是控件的類型,Tag表示了控件的名稱。在編寫代碼的時候我們通常會使用set這個語句來設置某個控件的屬性或者使用get來獲得某個控件的屬性。下面我們以一個簡單的例子來演示GUI界面的編寫過程。
現如今房價越來越貴,大家買房子的時候很少有人會取全款買房,貸款買房是大多數人的選擇。可是貸款的時候不同的利率,不同的還款方式,貸款的金額,年限等等都會影響我們最后的還款金額。那么我們在這里就用Matlab的GUI界面來做一個貸款App吧。考慮到貸款要考慮的因素,我們可以設計如下的GUI界面
紅色框框用到了靜態文本用來表明左側的文本對應的內容是什么,綠色框框用到了可編輯文本,在運行GUI界面的時候我們可以改動里面的內容。藍色的是
彈出式菜單,對應的里面設置的是還款方式(等額本金和等額本息),我們在其String屬性里面設置
如下圖:
在String里面每一行表示一個選項,我們對應的分別是等額本金和等額本息。黃色框框就是坐標軸控件,這里用來顯示我們貸款后每個月還款的金額。紫色框框里面用到的是按鈕控件,我們預計的結果就是所有參數輸入完畢后點擊一下按鈕,就能在坐標軸里面顯示每個月的還款額度,并在最下面輸出我們總共要付的利息。對于可編輯的控件當我們使用鼠標右鍵單機的時候會彈出一個對話框,我們可以在“查看回調”對應的下拉選項中選擇一個編程來實現功能,最長用到的就是callback。比如在我們的例子中要實現鼠標左鍵單擊‘計算’按鈕,在界面輸出貸款結果,那么我們可以鼠標右鍵單擊計算按鈕,點開查看回調中的callback,來創建‘計算’這個按鈕控件的回調函數。如下圖:
點開之后就會出現一個代碼框如下圖
圖中function pushbutton3_Callback(~,~handles)就是‘計算’按鈕的的回調函數,由于我這之前沒有更改計算按鈕的Tag屬性(也就是控件的ID),所以這里現實的是pushbutton3,當我們改表屬性Tag為pushbutton_jisuan,然后顯示就變成了下圖所示
然后我們就可以在里面輸入代碼來實現我們想要的功能。在我們這個例子中,整個GUI只需要在這里編寫代碼,具體代碼如下:
huankuan=get(handles.popupmenu_huankuan,\’Value\’);%通過讀取控件Value來獲取貸款方式
r=str2double(get(handles.edit_lilv,\’string\’))*…%換行
(1 str2double(get(handles.edit_fudong,\’string\’))/100)/1200;%獲取并計算月利率
yihang=get(handles.edit_yinhang,\’String\’);%獲取貸款銀行
H=str2double(get(handles.edit_daikuannian,\’string\’))*12;%獲取貸款期數
P=str2double(get(handles.edit_jine,\’string\’));
axes(handles.axes1);
switch huankuan
case 1 % 等額本金
for M=1:H
A(M)=P*10000/H (1-(M-1)/H)*P*r*10000;%等額本金計算公式
end
plot([1:H],A)
% ylim([min(A)-500 max(A) 500]);
xlim([0 H]);
title(yihang);
ylabel(\’每月還款金額(元)\’);
xlabel(\’還款月份\’);
case 2 % 等額本息
for M=1:H
A(M)=P*10000*r*((1 r)^H/((1 r)^H-1));
end
plot([1:H],A)
xlim([0 H]);
title(yihang)
ylabel(\’每月還款金額(元)\’);
xlabel(\’還款月份\’);
end
L=(sum(A)-P*10000)/10000;%計算總利息
set(handles.text_lixi,\’String\’,num2str(L));%在文本框lixi中顯示總利息
對于新手來說一定要注意handles.xxx,這里的xxx對應的是每個控件的Tag。還有就是要注意數據的屬性,要顯示出來的都是字符型,我們直接從控件讀取的都是字符型,需要使用str2double或者str2num函數轉換成可以計算的數字型。同樣的,當我們通過代碼設置控件的‘String’屬性的時候需要將計算的數字用num2str轉換成字符型才能使用。
都弄好之后我們點擊保存,命名為daikuan。然后我們就能看到有兩個文件保存了下來,如下圖
分別是m文件和fig文件,對應的是代碼文件和圖形界面文件,兩個文件之間是相互聯動的,想要運行我們剛剛編寫好的GUI,這兩個文件去缺一不可。
當這兩個文件在Matlab的工作路徑下的時候我們可以雙擊fig文件打開GUI或者雙擊m文件,然后點擊編輯器里面的‘運行’按鈕打開GUI。打開后的界面如下圖所示
假如我們選擇工商銀行貸款,貸款金額為100萬元,貸款期限為30年,年利率是4.9%,利率上浮20%。那么選用等額本金和等額本息的計算出來的還款圖就如下圖所示
最后我們把制作好的GUI界面封裝成exe文件來脫離Matlab獨立運行。
我們可以在命令行窗口輸入deploytool這個代碼或者通過Matlab>App>Application Compiler,來打開Application Compiler。打開后如下圖所示
在選好daikuai.m文件后,我們還可以自己設置App圖標以及各種軟件信息,如下圖
輸出有兩種,一種文件較小,運行的時候需要額外安裝一些軟件(如果已經裝了Matlab則不需要),另一種文件很大是可以完全獨立運行的(不需要安裝Matlab)。這里我們選擇最小的那個,然后點擊Package進行封裝生成EXE文件。然后找到生成文件路徑,雙擊打開新生成for_test文件夾下的daikuan,同樣也能夠開始貸款計算啦,此時你不需要運行Matlab!
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。