matlab中的三维矩阵乘法

时间:2013-05-12 09:01:00

标签: matlab matrix-multiplication normals

我有一个大小为m x n x 3的法线贴图,其中每个像素都有一个法线向量{Nx,Ny,Nz}。 我想通过旋转矩阵独立地旋转每个法向量。设R为大小为m x n x 3 x 3的旋转矩阵,其中每个像素的旋转矩阵大小为3 X 3

我想将每个像素的旋转矩阵乘以法线向量以获得旋转 法向量。我正在寻找一种优化的方法来完成任务,因为循环每个像素可能不是最好的方法。

请帮忙!!

1 个答案:

答案 0 :(得分:1)

我会尝试

res = sum( bsxfun(@times, map, R), 4 );

使用map m - 按 - n - 按 - 3法线向量,Rm - by- { {1}} - 按 - n - 按 - 3每个向量的轮换次数。

考虑到这一点,您可能需要使用3

permute

或者,正如Harshit所说:

res = sum( bsxfun(@times, map, permute(R, [1 2 4 3]) ), 4 ); % transposing the vectors
相关问题