简单写了个例子,代码如下(已作为附件上传):
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文件中(或者直接下载附件)运行即可,效果图如下:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/a50f4bfbfbedab64bcf74c2cf636afc378311e50?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
希望对楼主有帮助,如有问题请追问,满意望采纳。
追问还不太懂,能留个qq好方便请教你吗?
追答如果还有问题可以在此追问,或者发邮件到企鹅邮箱522319871(但请不要申请加好友,我不挂QQ,以免无谓的互动浪费时间)。
提问时希望认真整理一下思路,尽量表达清楚点,避免因为表达不明而造成多次反复,既不利于你的问题早日得到解决,也浪费他人时间。