在GUI中一個控件函數結束後,會將在這個函數中使用的變量所有刪除,若是想在另外一個控件中使用,則必須想辦法將這個變量保存傳遞,方法有如下幾種:
一、使用globe定義全局變量,這種方法不是很好,一方面是要在使用變量的函數裏面要先對變量進行聲明,另外一方面,在一個函數裏面對變量進行操做就會對全部函數起做用,這樣不是太方便,但畢竟是一種解決方法。html
function btn1_callback(hObject,userdata,handles)
global var1
%對var1的處理
function btn2_callback(hObject,userdata,handles)
global var1
%對var1的引用數組
二、使用guidata函數,使用方法是:
handles.X=str2double(get(hObject,'String'));
guidata(hObject,handles);
在別的函數中只要使用handles.X就能夠獲得str2double(get(hObject,'String'))數值。
這種方法的好處是,在改變了控件的Tag後,方便使用相應控件傳遞來的數據,缺點是要改變控件的句柄handles值,這樣彷佛不是很安全。安全
三、使用空間的userdata屬性保存數據,使用方法以下:
set(handles.X,'userdata',a);
這裏a就是要傳遞的變量,如今暫時保存在這個控件的userdata中,須要取出時:
a=get(handles.X,'userdata');
便可將a傳遞到新函數中,若是要傳遞的是多個變量,可使用結構數組進行傳遞
這種方法是最安全且自由度高的傳遞方法,推薦!!!函數
轉自:ui
關於gui中不一樣函數間數據傳遞
http://www.ilovematlab.cn/thread-139436-1-1.html
(出處: MATLAB中文論壇)htm
&get
http://zhidao.baidu.com/question/122975623.html?loc_ans=385198831io