小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Matlab:MATLAB GUI不同控件函數(shù)間變量傳遞的三種方法詳解

 處女座的程序猿 2023-04-24 發(fā)布于上海

Matlab:MATLAB GUI不同控件函數(shù)間變量傳遞的三種方法詳解


MATLAB GUI不同控件函數(shù)間變量傳遞的方法詳解

在GUI中一個(gè)控件函數(shù)結(jié)束后,會(huì)將在這個(gè)函數(shù)中使用的變量全部刪除,如果想在另一個(gè)控件中使用,則必須想辦法將這個(gè)變量保存?zhèn)鬟f,方法有以下幾種:

T1、使用globe定義全局變量

這種方法不是很好,一方面是要在使用變量的函數(shù)里面要先對(duì)變量進(jìn)行聲明,另一方面,在一個(gè)函數(shù)里面對(duì)變量進(jìn)行操作就會(huì)對(duì)所有函數(shù)起作用,這樣不是太方便,但畢竟是一種解決方法。

function btn1_callback(hObject,userdata,handles)
global var1
%對(duì)var1的處理
function btn2_callback(hObject,userdata,handles)
global var1
%對(duì)var1的引用

T2、使用guidata函數(shù)

使用方法是:
handles.X=str2double(get(hObject,'String'));
guidata(hObject,handles);
在別的函數(shù)中只要使用handles.X就可以得到str2double(get(hObject,'String'))數(shù)值。
這種方法的好處是,在改變了控件的Tag后,方便使用相應(yīng)控件傳遞來(lái)的數(shù)據(jù),缺點(diǎn)是要改變控件的句柄handles值,這樣似乎不是很安全。

handles.X=str2double(get(hObject,'String'));
guidata(hObject,handles);

T3、使用空間的userdata屬性保存數(shù)據(jù)

使用方法如下:
set(handles.X,'userdata',a);
這里a就是要傳遞的變量,現(xiàn)在暫時(shí)保存在這個(gè)控件的userdata中,需要取出時(shí):
a=get(handles.X,'userdata');
即可將a傳遞到新函數(shù)中,如果要傳遞的是多個(gè)變量,可以使用結(jié)構(gòu)數(shù)組進(jìn)行傳遞
這種方法是最安全且自由度高的傳遞犯法,推薦!!!

?

set(handles.X,'userdata',a);
a=get(handles.X,'userdata');

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多