matlab中guide的搭建與進階

guide

matlab作爲一款科學計算軟件,擁有衆多強大的函數庫以及豐富的工具箱,比如神經網絡工具箱,機器學習工具箱。simulink是強大的模塊組建工具,guide則可以搭建用戶友好界面。雖然python開放了開源的科學計算程序,但matlab在易用性上還是無可匹敵。

matlab上直接輸入guide即可進入guide的窗口(這是我以前建立的一個簡單的guide)
這裏寫圖片描述

guide的使用方法與c#中拖插件的方式很像,不過guide的插件比較少,種類更偏向於圖像,數字等等。上述插件運行後可以得到如下界面。

這裏寫圖片描述
插件一般包括callback、CreateFcn、ButtonDownFcn、DeleteFcn等函數,右鍵插件選擇回調函數即可,比如病歷導入這個按鈕插件的回調函數如下:

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[filename,pathname] = uigetfile({'*.jpg';'*.bmp';'*.png'},'讀取文件');
str = [pathname filename];
set(handles.edit1,'string',str);
im = imread(str);
axes(handles.axes1);
hImage = imshow(im);
set(hImage,'ButtonDownFcn',{@myCallback,handles});

程序解釋:這是一個簡單的讀取圖片的文件,並顯示在axis1中,每個插件都有自己的屬性檢查器。axis1顯示爲它的Tag屬性上。另外包括這個插件的文字顯示,位置大小顏色等等屬性都可以在Tag上調整。
一般gui中函數有三個屬性,h0bject,eventdata,handles三個屬性,h0bjet是句柄指針很重要,handles是用戶數據,如果要引用其它回調函數必須引用它的h0bject和handles兩個屬性。

function myCallback(hObject, eventdata, handles)
ClickPoint = get(gca,'currentpoint');

col_coordinate = ClickPoint(1,1);
row_coordinate = ClickPoint(1,2);
rectangle('Position',[col_coordinate,row_coordinate,100,50],'LineWidth',2,'EdgeColor','g');
%axes(handles.axes1);
str2 = 'this position has a tumour';
set(handles.edit3,'string',[num2str(col_coordinate),num2str(row_coordinate)]);

當然,gui裏面也可以定義自己的函數,比如myCallBack函數,該函數可以在其它回調函數中被調用。guide可以將功能模塊化。gui還可以採集聲音信號,控制攝像頭,處理數據,機器學習等等功能整合,guide可以會生成.fig文件和.m文件,有這兩個文件一起可導出爲exe文件,在windows下運行。只需在matlab的command windows下運行mcc -m guide.m即可.

關於guide的具體使用建議在論壇或者找本書學習,基本使用方法都比較簡單,問題在於怎麼搭建一個環環相扣的系統,its a big project.

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