求助matlab GUI中关于传递函数的问题

利用可编辑文本框输入数据(2个以上),是他们变成一个传递函数,为其他控件的函数提供输入的数据。

简单写了个例子,代码如下(已作为附件上传):

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文件中(或者直接下载附件)运行即可,效果图如下:

希望对楼主有帮助,如有问题请追问,满意望采纳。

追问

还不太懂,能留个qq好方便请教你吗?

追答

如果还有问题可以在此追问,或者发邮件到企鹅邮箱522319871(但请不要申请加好友,我不挂QQ,以免无谓的互动浪费时间)。
提问时希望认真整理一下思路,尽量表达清楚点,避免因为表达不明而造成多次反复,既不利于你的问题早日得到解决,也浪费他人时间。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-13
你说的是EXCEL文档吗?