日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB GUI不同控件函数间变量传递方法

發(fā)布時(shí)間:2025/3/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB GUI不同控件函数间变量传递方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

?

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

?

3、使用空間的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)行傳遞
這種方法是最安全且自由度高的傳遞方法,推薦!!!

轉(zhuǎn)自:

關(guān)于gui中不同函數(shù)間數(shù)據(jù)傳遞
http://www.ilovematlab.cn/thread-139436-1-1.html
(出處: MATLAB中文論壇)

&

http://zhidao.baidu.com/question/122975623.html?loc_ans=385198831

轉(zhuǎn)載于:https://www.cnblogs.com/Dontstop/p/5379685.html

總結(jié)

以上是生活随笔為你收集整理的MATLAB GUI不同控件函数间变量传递方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。