建立空白的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
結束語
上述内容是自己在做項目的時候,查閱相關資料所總結出來的一些經驗。由于能力有限,上述内容難免會有疏漏和錯誤,歡迎各位大佬批評指正。
---------------------