我试图找到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的基础上。
答案 0 :(得分:2)
tf函数计算传递函数模型。这似乎与您的问题没有任何关系。
<强>编辑:强>
现在我知道了,所以你想要的结果矩阵R
实际上是
R = (M1 * M2^-1)^T
因此
result = (mat1 * inv(mat2))';
转换只是由于您选择先选择索引列。
但是,我必须强调此解决方案产生
mat1 = result' * mat2;
所以R^T
不是从M1
到M2
的转换矩阵,而是从M2
到M1
的转换矩阵。
答案 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