1. 程式人生 > >matlab中guide的搭建與進階

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.