登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
reshape:reshape的功能是最基本的,也是最原始的,它的对象是一个一个的元素,这里称为元素,也可以叫做一个一个的数字,比如A=[1:1:12],
B=reshape(A,2,3,2),首先会产生2X3x2的矩阵,可以理解为x,y,z方向,2行,3列,2层,然后把数字从1到12一个一个放进去。
shiftdim:简单的理解就是转移维的方向,这样解释很抽象。比如上面的B=reshape(A,2,3,2),B(:,:,1) =[1,3,5;2,4,6],B(:,:,2) =[7,9,11;8,10,12];前面的我们B(:,:,1) 把它叫做第一层,也可以想成z方向第一层,后面的B(:,:,2)叫做第二层,同理也可以想象成z方向第二层。c=shiftdim(B,1),就是把层的方向往前移动一次,从z移动到y,自然c(:,:,1)=[1,7;3,9;5,11],c(:,:,2)=[2,8;4,10;6,12];同理,可以移动两维。就像我们的房子,总是一个楼层一个楼层的移动和旋转,往天上看和往房子的右侧或者左侧看,看到的数字排列顺序是不一样的。矩阵实验室的思想就会以矩阵为单位变换。
permute:permute就更简单,就是按维数去取矩阵,比如我 A=reshape(1:12,2,3,2),得到A(:,:,1) =[1,3,5;2,4,6];A(:,:,2) =[7,9,11;8,10,12];d=permute(A,[3,1,2])
那取矩阵的规则就是我先从z方向就是第三维去取矩阵,再往x方向即第一维方向取矩阵,取得的三个矩阵自然就是d(:,:,1) =[1,2;7,8];d(:,:,2) =[3,4;9,10];d(:,:,3) =[5,6;11,12].把这些数字想象成一层一层的楼房的格点,就是这么简单。
|