错误使用 tf (line 299) The values of the "Numerator" and "Denominator" properties must be row vectors or cell arrays of row vectors, where each vector is nonempty and containing numeric data. Type "help tf.num" or "help tf.den" for more information. 出错 a (line 11) tf_sys = tf(num, den);
时间: 2024-03-03 08:51:05 浏览: 195
CS5240 讲的矩阵求导,很好
根据错误提示,MATLAB 报错的原因是分子和分母多项式的格式不正确。在您提供的代码中,使用 `ss2tf` 函数得到的分子和分母多项式可能不是行向量形式,或者其中包含非数值数据。
为了解决这个问题,可以使用 `squeeze` 函数将多维数组压缩为行向量。同时,使用 `num2str` 函数将分子和分母多项式转化为字符串,方便查看其内容。代码如下:
```
A = [0 1 0 0; -0.6 0 0.4 0; 0 0 0 1; 0.4 0 -1 0];
B = [0 0; 0.2 0; 0 0; 0 0.2];
C = [1 0 0 0; 0 0 1 0];
D = [0 0; 0 0];
[num, den] = ss2tf(A, B, C, D, 1);
num_str = num2str(squeeze(num));
den_str = num2str(squeeze(den));
tf_sys = tf(num, den);
```
这样,得到的分子和分母多项式就是行向量形式的字符串,可以方便地查看其内容了。
阅读全文