1、matlab二维转换为三维矩阵
这里用到reshape函数
格式为AA1=reshape(A1,[行,列,页])
如下所示
A1=[2 2 2 2 2.5 2.5 2.5 2.5 1.8 1.8 1.8 1.8 2.2 2.2 2.2 2.2
2 2 2 2 1.8 1.8 1.8 1.8 2.1 2.1 2.1 2.1 2 2 2 2
4.5 5 5.5 6 6 6.5 7 7.5 5.5 6 6.5 7 4 4.5 5 5.5
0.6 0.7 0.7 0.8 0.2 0.3 0.3 0.4 0.6 0.7 0.7 0.8 0.4 0.5 0.6 0.6]
AA1=reshape(A1,[4,4,4]) %转化为3维矩阵
运行后得到:
AA1(:,:,1) =
2.0000 2.0000 2.0000 2.0000
2.0000 2.0000 2.0000 2.0000
4.5000 5.0000 5.5000 6.0000
0.6000 0.7000 0.7000 0.8000
AA1(:,:,2) =
2.5000 2.5000 2.5000 2.5000
1.8000 1.8000 1.8000 1.8000
6.0000 6.5000 7.0000 7.5000
0.2000 0.3000 0.3000 0.4000
AA1(:,:,3) =
1.8000 1.8000 1.8000 1.8000
2.1000 2.1000 2.1000 2.1000
5.5000 6.0000 6.5000 7.0000
0.6000 0.7000 0.7000 0.8000
AA1(:,:,4) =
2.2000 2.2000 2.2000 2.2000
2.0000 2.0000 2.0000 2.0000
4.0000 4.5000 5.0000 5.5000
0.4000 0.5000 0.6000 0.6000
2.三维矩阵转换为二维矩阵
这个转换比较简单,也是用reshape函数
clear;clc;
A1=[2 2 2 2 2.5 2.5 2.5 2.5 1.8 1.8 1.8 1.8 2.2 2.2 2.2 2.2
2 2 2 2 1.8 1.8 1.8 1.8 2.1 2.1 2.1 2.1 2 2 2 2
4.5 5 5.5 6 6 6.5 7 7.5 5.5 6 6.5 7 4 4.5 5 5.5
0.6 0.7 0.7 0.8 0.2 0.3 0.3 0.4 0.6 0.7 0.7 0.8 0.4 0.5 0.6 0.6]
AA1=reshape(A1,[4,4,4]) %转化为3维矩阵
A2=reshape(AA1,[4,16]) %3维矩阵转换为2维矩阵
3.三维矩阵排序
用到sort函数,按页排序
AA2=sort(AA1,3, ‘descend’) %3维矩阵排序
4.三维矩阵转置
用到permute函数,
AA3=permute(AA1,[2 1 3]) %1和2分别表示行与列,[2 1 3]表明行列转置,页不动。
运行结果:
AA3(:,:,1) =
2.0000 2.0000 4.5000 0.6000
2.0000 2.0000 5.0000 0.7000
2.0000 2.0000 5.5000 0.7000
2.0000 2.0000 6.0000 0.8000
AA3(:,:,2) =
2.5000 1.8000 6.0000 0.2000
2.5000 1.8000 6.5000 0.3000
2.5000 1.8000 7.0000 0.3000
2.5000 1.8000 7.5000 0.4000
AA3(:,:,3) =
1.8000 2.1000 5.5000 0.6000
1.8000 2.1000 6.0000 0.7000
1.8000 2.1000 6.5000 0.7000
1.8000 2.1000 7.0000 0.8000
AA3(:,:,4) =
2.2000 2.0000 4.0000 0.4000
2.2000 2.0000 4.5000 0.5000
2.2000 2.0000 5.0000 0.6000
2.2000 2.0000 5.5000 0.6000