Matlab 用两个向量求旋转矩阵

Matlab 用两个向量求旋转矩阵,matlab,matrix,rotation,Matlab,Matrix,Rotation,我想找到两个向量之间的旋转矩阵 [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;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]

这是一个简单的重新安排

% [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
其中,
y
x
是矩阵。查找
m

解决方案:

m = x\y or m = mldivide(x,y)
请注意
反斜杠
。这不是Wolfie在回答中提到的正斜杠。详情请参阅

其他详细信息:


如果
x
是奇异矩阵,则使用
pinv
。请参阅以供参考。

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

y = mx
其中,
y
x
是矩阵。查找
m

解决方案:

m = x\y or m = mldivide(x,y)
请注意
反斜杠
。这不是Wolfie在回答中提到的正斜杠。详情请参阅

其他详细信息:


如果
x
是奇异矩阵,则使用
pinv
。请参阅以供参考。

@ZizyArcher你是什么意思?这两个向量都是3个元素…@ZizyArcher我建议在编程环境中谈论向量长度时使用“量值”或“范数”,否则您的评论很容易混淆。这里向量的长度通常是数组大小的一个属性;在MATLAB中,向量的
长度是元素数。还请注意OP给出的示例可能需要舍入(1非常接近0.98),因此更有用的方法是注意“注意向量的大小不同,如果这不是由于舍入,那么旋转矩阵定义不清”。@Wolfie我知道我的糟糕的词语选择是如何导致混淆的。很遗憾,我似乎无法再编辑我的评论了,所以我删除了它们。虽然0.98对1的差异足够大,但除非有许多步骤,否则不能归因于四舍五入。唯一的可能性是最后一个元素实际上是0.9999。这也是一个相关的解决方案,可以得到实际的旋转矩阵:@ZizyArcher你是什么意思?这两个向量都是3个元素…@ZizyArcher我建议在编程环境中谈论向量长度时使用“量值”或“范数”,否则您的评论很容易混淆。这里向量的长度通常是数组大小的一个属性;在MATLAB中,向量的
长度是元素数。还请注意OP给出的示例可能需要舍入(1非常接近0.98),因此更有用的方法是注意“注意向量的大小不同,如果这不是由于舍入,那么旋转矩阵定义不清”。@Wolfie我知道我的糟糕的词语选择是如何导致混淆的。很遗憾,我似乎无法再编辑我的评论了,所以我删除了它们。虽然0.98对1的差异足够大,但除非有许多步骤,否则不能归因于四舍五入。唯一的可能性是,最后一个元素实际上是0.9999。这也是一个得到实际旋转矩阵的解决方案:必须指出的是,在这种定义不明确的情况下,/运算符放置尽可能多的零。旋转矩阵还有无穷多的其他解。(这在严格意义上是不存在的,因为本例中没有保留向量范数)。必须指出的是,在这种定义不明确的情况下,/运算符放置尽可能多的零。旋转矩阵还有无穷多的其他解。(这在严格意义上是不存在的,因为本例中没有保留向量范数)。