Matlab的GUI編程入門項目一:常用三角函數的繪製

Matlab入門一個星期啦,記錄一下入門以來的第一個GUI(Graphical User Interface)的第一個例子;
首先,GUI編程在matlab中也是兩種方式,一種是直接用代碼控制各種控件和實現邏輯;另外一種,也是我們新手入門的捷徑:通過GUIDE嚮導完成。這個類似於Android的Layout的實現方式。下面開始正題:
1,截面佈局
新建一個GUI空白項目;
這裏寫圖片描述

進入佈局編輯器之後,根據程序目標設計各控件(力求簡潔):

這裏寫圖片描述

2.邏輯代碼及回調函數的實現;
可以通過右鍵單擊控件,View callbacks進入callbacks回調函數編寫界面:
需要聲明的是:matlab的回調函數和Android等其他編程語言一樣,通過控件的唯一標識(tag)綁定回調函數,Android控件唯一標識爲Id;
以下是我們主要的繪圖函數回調的代碼:通過對RadioButton的狀態判斷,執行繪圖;

% --- Executes on button press in pushbutton_draw.
function pushbutton_draw_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton_draw (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
x0 = str2num(get(handles.editstart,'string'));
x1 = str2num(get(handles.editstep,'string'));
x2 = str2num(get(handles.editfinal,'string'));
x= [x0:x1:x2];
if get(handles.radiobuttonsin,'value')
        hline = plot(x,sin(x));

elseif get(handles.radiobuttoncos,'value')
        hline = plot(x,cos(x));
elseif get(handles.radiobuttontan,'value')
        hline = plot(x,tan(x));
elseif get(handles.radiobuttoncot,'value')
        hline = plot(x,cot(x));
end
handles.lines =hline;
guidata(hObject,handles);

這是主要代碼塊,其他的Menu Bar實現也是類似的方式;
最後程序的輸出爲:
sin:
這裏寫圖片描述

菜單欄中實現線條顏色的改變,結果如下:
這裏寫圖片描述

cos:
這裏寫圖片描述

總結:通過老師的督促,學習進度很快!本實例自己完全手寫,結果還是很滿意滿足的;但程序中依然有待改善的地方;比如:radiobutton的ButtnGroup中還是沒有實現打包操作,單選按鈕實際成了多選按鈕;
加油!!改進!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章