matlab程序错误Undefined function or variable 'm'.

已知Ф=5Ka/s^2+34.5s+5Ka,试计算Ka=200时,系统的性能指标tp,ts,σ%。

>> t=0:0.01:2;
num=[1000];
den=[1 34.5 1000];
[y,x,t]=step(num,den,t);
plot (t,y);
maxy=max(y);
yss=y(length(t));
pos=100*(maxy-yss)/yss;
for i=1:1:201
if y(i)==maxy,n=i;end
end
tp=(n-1)*0.01;
for i=1:1:201
if(y(i)<1.05&y(i)>0.95),m=i;end
break;
end
ts=(m-1)*0.01;
Undefined function or variable 'm'.

应当这样说,你的for i=1:1:201没有一个满足if那个条件.
也就是说m=i从来没有被运行过.
所以m这个变量没有定义过.
导致ts那一行引用m会提示没有m这个东西.追问

我该怎么定义m这个值呢?

追答

关键是你自己想干什么?
你自己要判断如果都没有执行都那一句,你是报错,还是给m赋个值。如果要给m赋值,你可以在for前面加一句:
m=100;
之类的,如果for里面有执行到,那么m的值自动就被修改了,如果没有被执行到,那么m的值就是100

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-10
首先,这段代码应该保存到一个m文件里运行,而不是直接放到命令行上
其次,m这个变量最好初始化一下,比如在代码第一行加上m=0;追问

m=0具体位置放在哪好呢 我在.M下打m=0 =上会有棕色光标

追答

m=0句末加分号了吗?”棕色光标“显示的警告信息是什么?

第2个回答  2013-12-10
首先,这段代码应该保存到一个m文件里运行,而不是直接放到命令行上
其次,m这个变量最好初始化一下,比如在代码第一行加上m=0;追问

m=0具体位置放在哪好呢 我在.M下打m=0 =上会有棕色光标

追答

m=0句末加分号了吗?”棕色光标“显示的警告信息是什么?

相似回答