查找具有两个向量的旋转矩阵

Find rotation matrix with two vectors

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

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

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

这是一个简单的重新排列

% [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]

你的问题可以定义为一个线性方程,比如说,

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 以供参考。