【Matlab学习手记】GUI参数传递

四种参数传递的方式,推荐第二种方式。

  • 1. 声明全局变量

    在每个事件开头用 global 声明变量,不推荐。

  • 2. handles结构体

    创建的GUI时,m文件会自动生成一个handles的结构体,包含所有的GUI对象数据;每个回调函数都可以通过handles获取任何GUI对象的数据。

    保存变量:

handles.a = a;
guidata(hObject, handles); % 更新结构体

    使用变量:

a = handles.a;
  • 3. 使用setappdata和getappdata函数
f = figure;
val = date
setappdata(f,'todaysdate',val);   % 赋值
getappdata(f,'todaysdate')        % 获取值
rmappdata(f, 'todaysdate')        % 删除值
getappdata(f,'todaysdate')        % 重新获取

val =
15-Aug-2018
ans =
15-Aug-2018
ans =
     []

% 不同界面之间传递参数
% 第一个界面的 Tag 设置为 fig1,第二个界面的 Tag 设置为 fig2

% 参考代码如下

% fig1 保存数据的代码:
x = 0:0.1:2*pi;
y = sin(x);
data.x = x;
data.y = y;
setappdata(0, 'fig1', data);  % 保存数据
fig2;  % 显示fig2

% fig2 获取数据的代码:
data = getappdata(0, 'fig1');  % 读取数据
x = data.x;
y = data.y;
plot(x, y);
  • 4. 使用assignin和evalin函数

    这种方式通过workspace传递参数:

assignin('base', 'data', val)    % 将data保存到workspace,变量名为data
data = evalin('base', 'data')    % 从workspace中获取data,赋值给data

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值