2

如何在 matlab 中旋转 3D 数组?

我的输入数据是一个矩阵 n*n*n。我想将它围绕其中心旋转到任意角度(theta,phi),并在输出处有另一个 n*n*n 矩阵(当然,无论在哪里定义值)。

例如,给定

a(:,:,1) = [0 0 0; 
            0 0 0;
            0 0 0];
a(:,:,2) = [0 0 0; 
            0 0 1;
            0 0 0];
a(:,:,3) = [0 0 0; 
            0 0 0;
            0 0 0];

被旋转到 [pi/2; pi/2](因此,Z 周围 45 度和 x 周围 45 度)应该产生类似

a(:,:,1) = [0 0.1 0.5; 
            0 0.05 0.1;
            0   0   0];
a(:,:,2) = [0 0.1 0.05; 
            0   0 0.1;
            0   0   0];
a(:,:,3) = [0   0   0; 
            0   0   0;
            0   0   0];

(数值为近似值)。

如果有一个内置函数呢?你会建议我创建什么?

4

0 回答 0