对于2D及1D数组,reshape的应用较为直观。只要记着matlab中矩阵的存放是按列进行的就行了。
如a=1:8;b=reshape(a,2,4),这b为
1 3 5 7
2 4 6 8
目前在科研中,3D数组的使用也是很多的。对于3D数组,就不像2D数组那么直观了。
但是,其实本质一样:列优先,然后行,最后页。
而b(1,2,3)其中,1指(纵向),即第一行;2指列(横向),即指第二列;3指页,及第三页。
对应于地幔对流软件Citcom,其存储格式为z方向,x方向,y方向
故,其对应的3D数组的格式应为:
b(nz,nx,ny)
例如:对于多维数组,如b(:,:,1)=[1,2;3,4],b(:,:,2)=[5,6;7,8],
则b的存放是1,3,2,4,5,7,6,8。
同理,矩阵的写入也是按列来的,对于这个2*2*2的矩阵b,reshape(b,2,4),那么就是把存放的1,3,2,4,5,7,6,8按列写入新的2*4矩阵,结果就是[1,2,5,6;3,4,7,8]。
下面再给出一写3D数组的介绍:
1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组。
2.三维数组 A=zeros(4,3,2) 是一个4行3列2页的三维全0数组。
3.利用直接索引方式生成多维数组
A=zeros(2,3) A(:,:,2)=ones(2,3) A(: