例1:一个三维矩阵,如何绕着z轴逆时针旋转90°?(及z方向不变,xy平面的数组逆时针旋转)
a = rand(4,3,2);
先给出一个随机的三维矩阵a,将矩阵a绕z轴逆时针旋转90°,能得到下方矩阵c的形式,下面演示如何把矩阵a变成矩阵c的样子。
b = permute(a,[2,1,3]);
可以看出permute中[2,1,3]表示,第三个维度位置不变,第一个维度和第二个维度对调。其实此时这个命令就相当于对二维数组进行转置,b(:,:,1)=a(:,:,1)' b(:,:,2)=a(:,:,2)'
得到矩阵b,发现X轴和Y轴是对调了,但是这个方向和矩阵C不一样,那么再修改一下:
c = flipud(b); %对矩阵进行上下翻转
上下翻转后,结果就和目标矩阵c一致啦,实现了三维矩阵绕z轴进行了一个逆时针的旋转。
例2:二维矩阵如何逆时针旋转?
a = rand(3,4);
b = a';
c = flipud(b);