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.00002.0000 2.0000 2.0000 2.00004.5000 5.0000 5.5000 6.00000.6000 0.7000 0.7000 0.8000AA1(:,:,2) =2.5000 2.5000 2.5000 2.50001.8000 1.8000 1.8000 1.80006.0000 6.5000 7.0000 7.50000.2000 0.3000 0.3000 0.4000AA1(:,:,3) =1.8000 1.8000 1.8000 1.80002.1000 2.1000 2.1000 2.10005.5000 6.0000 6.5000 7.00000.6000 0.7000 0.7000 0.8000AA1(:,:,4) =2.2000 2.2000 2.2000 2.20002.0000 2.0000 2.0000 2.00004.0000 4.5000 5.0000 5.50000.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.60002.0000 2.0000 5.0000 0.70002.0000 2.0000 5.5000 0.70002.0000 2.0000 6.0000 0.8000AA3(:,:,2) =2.5000 1.8000 6.0000 0.20002.5000 1.8000 6.5000 0.30002.5000 1.8000 7.0000 0.30002.5000 1.8000 7.5000 0.4000AA3(:,:,3) =1.8000 2.1000 5.5000 0.60001.8000 2.1000 6.0000 0.70001.8000 2.1000 6.5000 0.70001.8000 2.1000 7.0000 0.8000AA3(:,:,4) =2.2000 2.0000 4.0000 0.40002.2000 2.0000 4.5000 0.50002.2000 2.0000 5.0000 0.60002.2000 2.0000 5.5000 0.6000