天天看點

MATLAB GUI制作快速入門

建立空白的GUI

在MATLAB指令行中輸入guide

建立GUI,選擇Blank GUI (Default),點選确定後就生成了一個空白的GUI制作界面,如下圖所示

圖1

制作GUI的具體過程

簡單加法器

将可編輯文本拖入界面中

輕按兩下可編輯文本,在String欄中可以修改相應的文字,Tag欄是相當于給每個文本的一個标記,在後面的輸入輸出環節作用非常大。

将靜态文本拖入界面中,輕按兩下它,同樣可以在String欄中修改文本内容;同理,将按鈕拖入界面中,修改其String為運作,它的作用相當于運作程式的開關。

點選菜單欄中的對齊對象,選中界面中的相應元件,調整布局得到如下結果

圖2

前兩個可編輯文本為輸入,後一個為輸出,選中運作,單擊滑鼠右鍵,選擇檢視回調裡的Callback,在 pushbuttonX_Callback函數下編寫如下語句(這裡X表示你具體在運作的Tag中設定的是多少)

global a1;

global a2;

global a3;

a1 = str2double(get(handles.edit1,'String'));

a2 = str2double(get(handles.edit2,'String'));

a3 = a1 + a2;

set(handles.edit3,'String',a3);

1

2

3

4

5

6

7

在GUI界面中點選菜單欄的運作圖形,在前兩個可編輯文本中輸入資料,點選運作,得到結果如下

圖3

PS:

1、其實GUI制作并不複雜,理論上你編寫的任何m程式都可以打包成一個GUI,隻需要你解決輸入參數以及結果輸出的問題。

2、在編寫程式時,發現在某個函數A下定義一個全局變量s,想在另一個函數B下使用它,必須在函數B下重新s為全局變量(下文将會繼續提到)。

導入EXCEl資料

MATLAB是一款處理資料的利器,在實際過程中,可能需要向GUI中導入資料,下面将詳細介紹:

需要導入的資料如圖:

圖4

将按鈕拖入界面中,修改String為導入資料,選中它,單擊滑鼠右鍵→檢視回調→Callback,在pushbuttonX_Callback函數中編寫如下語句。

global sj;

[fname_od,pname_od] = uigetfile('.xlsx','請選擇您想導入的資料’);

if fname_od == 0

return

end

str = fullfile(pname_od,fname_od);

[num,txt,sj] = xlsread(str);

%下面語句的作用是删除資料第一行

sj(1,:) = [];

sj = cell2mat(sj);

%導入進來的是一個元胞數組,需要轉換成矩陣

8

9

10

11

上述代碼中,可以根據自己的實際需求做出相應修改,如檔案格式為xls,則在uigetfile中可将xlsx改為xls

GUI中顯示上述資料

在GUI界面中拖入表,此時它的Tag應該是uitable1,選中它,單擊滑鼠右鍵→檢視回調→CreateFcn

在uitableX_CreateFcn函數輸入如下程式:

DATA = {0,0,0,0,0,0}

%表格的初始值

set(hObject,'ColumnName',{'國文','數學','英語','實體’,'化學’,'生物'},'data',DATA,...

'ColumnEditable',true);

%設定表格的欄目名

在GUI界面中,點選菜單欄中的運作圖形,調整布局後,得到如圖結果:

圖5

選中運作按鈕,點選滑鼠右鍵→檢視回調→Callback,繼續在pushbuttonX_Callback函數下編寫如下語句

%此處就是上文中提到的再一次定義全局變量

set(handles.uitable1,'data',sj);

在GUI界面中,點選運作圖形,在可編輯文本中輸入資料,單擊導入資料按鈕,彈出的界面如圖

圖6

選擇上述資料的EXCEL檔案,再點選運作按鈕,可以得到如下結果

圖7

上面的步驟雖然隻是講述了如何将資料導入GUI,并通過GUI将原資料導出,但是通過上述方法,你可以對導入的資料進行相關處理後,根據實際的需要将結果輸出。

彈出式菜單的簡要介紹

下拉菜單是GUI中常見的元件,下面對其使用方法進行相關介紹

将彈出式菜單拖入GUI界面,輕按兩下它,在String欄中點選小正方形,在裡面輸入你需要的内容,如圖

圖8

選中彈出式菜單→檢視回調→Callback,在popupmenuX_Callback函數中輸入如下代碼

global a4;

val = get(handles.popupmenu1,'value');

switch val

case 1

a4 = 0;

case 2

a4 = 5;

case 3

a4 = 9;

case 4

a4 = 15;

12

選中運作→檢視回調→Callback,在 pushbuttonX_Callback函數下編寫如下語句

a3 = a1 + a2 + a4;

在GUI菜單欄中點選運作圖形,在下拉菜單中選擇你所要的資料

在文本中輸入資料,并按照上述過程導入你想要處理的資料,點選運作按鈕,得到如下結果

圖9

結束語

上述内容是自己在做項目的時候,查閱相關資料所總結出來的一些經驗。由于能力有限,上述内容難免會有疏漏和錯誤,歡迎各位大佬批評指正。

---------------------