用两个向量找到旋转矩阵

时间:2018-06-21 08:03:23

标签: matlab matrix rotation

我想找到两个向量之间的旋转矩阵。

[0;0;1] = R * [0.0023;0.0019;0.9899]

如何找到3 * 3旋转矩阵?

2 个答案:

答案 0 :(得分:2)

这是一个简单的重新排列

% [0;0;1] = R * [0.0023;0.0019;0.9899];
% So ...
% [0;0;1] / [0.0023;0.0019;0.9899] = R
% This is a valid MATLAB command

R = [0;0;1] / [0.0023;0.0019;0.9899];
>> R =
    [ 0    0    0
      0    0    0
      0    0    1.0102 ]

我们可以验证此结果

R * [0.0023;0.0019;0.9899]
>> ans =
    [0; 0; 1]

答案 1 :(得分:0)

您的问题可以定义为线性方程,例如

y = mx

其中yx是矩阵。找到m

解决方案:

m = x\y or m = mldivide(x,y)

请注意backslash。这不是 Wolfie 在他的回答中提到的斜杠/。有关详细信息,请参见https://www.mathworks.com/help/matlab/ref/mldivide.html

其他详细信息:

如果x是奇异矩阵,请使用pinv。请参阅https://www.mathworks.com/help/matlab/ref/pinv.html以供参考。