matlab里输入下面程序,怎么会有这个结果?

来源:百度知道 编辑:UC知道 时间:2024/06/27 07:52:14
A=[1 2 0;3 -1 1;0 -2 2];
B=[0;0;1];
C=[1 -1 1];
Qc=ctrb(A,B);
n=rank(Qc)
if (n= =3),disp('system is controllable');
else,disp('system is uncontrollable');
end
Qo=obsv(A,C);
m=rank(Qo)
if (m= =3),disp('system is observable');
else,disp('system is unobservable');
end

结果是:ans =

41
不明白,根本不是想要的结果啊,是哪设置错了吗?

我也没看出什么错,只问一句:这些程序行你是直接在MATLAB的主窗口里面打的?还是另存成一个M文件,然后运行这个M文件?

如果是后者,估计是这个M文件的文件名有问题,跟己知变量或者函数冲突,你另换一个名字就行。

你返回了n的值并显示了出来,另外disp要显示的话就不要在句子最后用“;”

运行结果跟你的不一样,看来你的的确是有问题了。建议重命名.m文件,文件名特别不要用数字开始