我有一个代表N x M x 3
方向向量的N*M
矩阵。我想将每个方向向量与3乘3旋转矩阵相乘,以获得新坐标系中的向量。如何在不使用for循环的情况下在MATLAB中执行此操作?
答案 0 :(得分:1)
您可以利用reshape
将N 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));