0

我试图找到matlab的一个函数,我找到了'tf'但我不知道如何使用它:/

所以我正在尝试编写转换矩阵的代码,来自:

mat1=[1,1,1;
      1,1,0;
      1,0,0];

对此:

mat2=[1,2,3;
      0,1,1;
      0,0,1]

我想我必须做类似的事情:

a{1} * mat2(1,:) + a{2} * mat2(1,:) + a{3} * mat2(1,:) = mat1(1,:);
a{4} * mat2(2,:) + a{5} * mat2(2,:) + a{6} * mat2(2,:) = mat1(2,:);
a{7} * mat2(3,:) + a{8} * mat2(3,:) + a{9} * mat2(3,:) = mat1(3,:);

找到求解这些方程的 a{1}、a{2}、....a{9},并将其放入列中:

result = [a{1} a{4} a{7};
          a{2} a{5} a{8};
          a{3} a{6} a{9}];

我的方法好吗?有人可以告诉我如何使用 matlab 函数为我的矩阵创建转换矩阵吗?

这是一个例子:

1(1,2,3)-1(0,1,1)-1(0,0,1) = (1,1,1)
1(1,2,3)-1(0,1,1)-2(0,0,1) = (1,1,0)
1(1,2,3)-2(0,1,1)-1(0,0,1) = (1,0,0)

那么,结果应该是:

result =    [1  1  1
            -1 -1 -2
            -1 -2 -1]

现在如果我在 B 的基础上取向量 (3, -1, -1),我在 c 的基础上得到 (1,0,0)。

4

2 回答 2

2

tf函数计算传递函数模型。这似乎与您的问题没有任何关系。

编辑:

现在我明白了,所以R你想要的结果矩阵实际上是

R = (M1 * M2^-1)^T

因此

result = (mat1 * inv(mat2))';

其中转置仅仅是由于您选择首先选择索引列。

但是,我必须强调这个解决方案会产生

mat1 = result' * mat2;

所以R^T不是从 到 的转移矩阵,而是从M1M2的转移M2矩阵M1

于 2012-06-12T12:51:17.940 回答
0

TF() 是传递函数。就像在控件中一样。例如,如果函数是 F(s) = (1/5s^2+2s+1) 分子 = [1] 分母 = [5 2 1],因此您的传递函数 F = tf([1], [5 2 2])。从这里你可以做很多有趣的工程,比如 bode(F) 等等。

我认为您正在尝试做的是: http: //www.mathworks.com/matlabcentral/newsreader/view_thread/132415

于 2012-06-12T12:51:50.857 回答