【问题标题】:Matlab transition matrixMatlab转换矩阵
【发布时间】:2012-06-12 11:58:56
【问题描述】:

我试图找到一个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)。

【问题讨论】:

    标签: matlab matrix transition


    【解决方案1】:

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

    已编辑:

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

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

    因此

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

    转置仅仅是因为您选择索引列优先。

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

    mat1 = result' * mat2;
    

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

    【讨论】:

    • @Alon: 呃,我为什么要转置结果?
    【解决方案2】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 2010-12-28
      相关资源
      最近更新 更多