Matlab转换矩阵

时间:2012-06-12 11:58:56

标签: matlab matrix transition

我试图找到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),我得到(1,0,0)在c的基础上。

2 个答案:

答案 0 :(得分:2)

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

<强>编辑:

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

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

因此

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

转换只是由于您选择先选择索引列。

但是,我必须强调此解决方案产生

mat1 = result' * mat2;

所以R^T不是从M1M2的转换矩阵,而是从M2M1的转换矩阵。

答案 1 :(得分: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