請通俗易懂地解釋一下guidata()的用法?以及他是如何幫助參數在GUI間傳遞的?
01-08
做matlab的GUI是不是很懂handle和guidata。求助。謝謝
handles 在gui中就是一個儲存各種句柄和數據結構體.
guidata()函數是用來儲存和取出這個結構體的函數, 將handles結構體存入figure的特定儲存空間中或從中取出, 因此有兩種用法:1. guidata(hObject, handles); %%儲存handles
2. handles = guidata(hObject); %%取出handleshandles僅僅只是一個結構體, 在函數之戰傳遞時,如:
function push1_Callback(hObject, eventdata, handles)handles.data1 = "heygirl"; %%將字元串"heygirl"存入handles結構體
guidata(hObject, handles);傳入的只是handles的值, callback函數中的handles改變時, figure特定存儲空間中的handles並沒有改變. 因此必須使用guidata(hObject, handles)將改變的handles儲存. hObject只是為了找到figure的特定儲存空間, 可以是figure中的任意句柄. handles的傳遞就好像是函數間的形參與實參, 但是這裡的形參可以通過guidata(hOject, handles)改變實參.Ps: 運行gui時使用代碼里的Run按鈕, 因為雙擊打開將不會執行handles的生產代碼, 為了不造成額外麻煩最好使用Run按鈕.推薦閱讀:
※Matlab畫圖增加右邊坐標軸的刻度,與左邊一樣,如何處理?
※請問怎麼用matlab 畫一個傾斜的橢球?
※「MatLab 模擬結論在工業界認可度低」是否屬實?
※matlab計算速度?
※這個Matlab圖像應用了什麼命令?