三维矩阵与旋转矩阵的矩阵乘法

时间:2016-04-21 09:29:47

标签: matlab

我有一个代表N x M x 3方向向量的N*M矩阵。我想将每个方向向量与3乘3旋转矩阵相乘,以获得新坐标系中的向量。如何在不使用for循环的情况下在MATLAB中执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以利用reshapeN x M x 3矩阵转换为(N*M) x 3,然后乘以轮换矩阵R,然后乘以reshape结果回到N x M x 3

%// Create some example data and a rotation matrix
data = rand(5,4,3);
R = rand(3);

%// Apply rotation to 3D data matrix.
newdata = reshape(reshape(data, [], 3) * R, size(data));