关于matlab gui中get set函数的问题???
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于matlab gui中get set函数的问题???相关的知识,希望对你有一定的参考价值。
参考技术A get可以返回值这个值用于其它函数的输入是可以的
例如
eval(get(hobject,'string'))
等价
str
=
get(hobject,'string')
eval(str) 参考技术B 简单写了个例子,代码如下(已作为附件上传):
function zd579285021
% 传递函数分子、分母输入框
uicontrol('style','text','units','normal', 'fontsize',9, ...
'pos',[0.8 0.85 0.18 0.05], 'str', '传函分子多项式系数');
h.num = uicontrol('style','edit','units','normal', ...
'pos',[0.8 0.8 0.18 0.05], 'back', 'w', 'str', '1');
uicontrol('style','text','units','normal', 'fontsize',9, ...
'pos',[0.8 0.65 0.18 0.05], 'str', '传函分母多项式系数');
h.den = uicontrol('style','edit','units','normal', ...
'pos',[0.8 0.6 0.18 0.05], 'back', 'w', 'str', '[1 1 1]');
% 绘图坐标系
h.ax = axes('units','normal','pos',[0.1 0.1 0.65 0.85]);
% 利用userdata传递句柄信息
set(gcf, 'userdata', h);
uicontrol('style','push','units','normal', 'fontsize', 9, ...
'pos',[0.8 0.3 0.18 0.08], 'str', '阶跃响应', 'call', @stepresp);
function stepresp(varargin)
% 按钮的回调函数
% 获取输入信息
h = get(gcf, 'userdata');
try
num = str2num( get(h.num,'str') );
den = str2num( get(h.den,'str') );
catch
errordlg(lasterr)
return
end
% 求阶跃响应
sys = tf(num, den);
[y, t] = step(sys);
% 绘制阶跃响应曲线
axes(h.ax);
plot(t,y);
把代码保存到一个m文件中(或者直接下载附件)运行即可,效果图如下:
希望对楼主有帮助,如有问题请追问,满意望采纳。
matlab的GUI中,怎么修改参数
如图,我现在点击开始,可以生成T=6,12,18的曲线,但是我现在想要自己设定T的数值,也就是通过右上角那个(如果那个不可以请大神指教用什么模块)修改T的数值,然后生成曲线,请问该怎么设置,请说的详细一点,最好有代码,下面的是我这个图片的代码
num=[20]; den=[6,15]; impulse(num,den,'-k') hold on num=[20]; den=[12,15]; impulse(num,den,'--r') hold on num=[20]; den=[18,15]; impulse(num,den,'-.g') grid legend('T=6','T=12','T=18')
1.只需要把数值给FS即可 可以用global定义
2. 用callback函数就可以实现。同时,也不用global定义,用handles就可以。
Matlab的GUI参数传递方式
1.运用gui本身的varain、varaout传递参数(注:这种方式仅适用与gui间传递数据,且只适合与主子结构,及从主gui调用子gui,然后关掉子gui,而不适合递进结构,即一步一步实现的方式)。
2. 运用global定义全局变量传递参数(适用于gui内控件间以及不同gui间) 。
3. 运用UserData传递参数(gui内) 。
4.应用setappdata\getappdata与rmappdata函数(gui间和gui内,推荐使用) 。
5.结合handles和guidata函数(gui内,不推荐使用,经常出现问题,比如在handles中添加了变量对象Y后可能就会挤掉handles另外一个对象) 。
6. 运用save和load(importdata)传递参数(gui内和gui间)。 参考技术A
那个控件是编辑框,先用get函数获取编辑框的内容,然后用str2num转换为数值类型,再画图就可以了,大致的代码是:
s = get(handles.edit1,'str');T = str2num(s);
.....
其中handles.edit1是编辑框控件的句柄,对于你这个图默认应该是这样的名字,如果不是,请自行修改。
追问这个语句加在哪里?我放在开始按钮的CALLBACK里面不行呀,然后上面画图那个M文件里面的T用不用修改?
追答1、怎么个不行法?具体现象你不说,怎么帮你?
2、GUI不仅仅是m文件,还有对应的fig文件。你最好把文件打包传到网盘,才好帮你分析。
3、T当然要修改,我给你的代码只是让你可以从界面获得数据,后面再怎么用数据是你的事。
以上是关于关于matlab gui中get set函数的问题???的主要内容,如果未能解决你的问题,请参考以下文章