首页 > 代码库 > matlab高维数组
matlab高维数组
对于高维数组,人们习惯地把二维数组的第一维称为“行(Row)”,把第二维称为“列(column)”,至于第三维,称谓都是不相同的这里为了方便,采用“页(Page)”来称呼。
打个比方,二维数组可以看成由“小方格”拼成的“矩面行”那样,三维数组可以被看成由“小方块”组成的“长方体”。对于三维数组来说,无论在那一页的二维行、列数组都应该是同样大小的;无论哪一行上的二维列、页数组应该是同样的大小的;无论那一列上的二维行、页组数也应该是同样大小的。
1、高维数组的创建
1)直接通过“全下标”元素赋值方式创建高维数组;
2)由若干个同样大小的低维数组组合成高维数组;
3)由函数ones、zeros、rand、randn直接创建标准高维数组;
4)借助cat,repmat,reshape等函数构作高维数组;
例子:1)全下标单元素赋值法
>> A(2,4,2)=1 A(:,:,1) = 0 0 0 0 0 0 0 0 A(:,:,2) = 0 0 0 0 0 0 0 1 >>
2)由若干个同样大小的低维数组组合成高维数组
<span style="font-size:18px;">>> C=ones(2,3);C(:,:,2)=ones(2,3)*2;C(:,:,3)=ones(2,3)*3 C(:,:,1) = 1 1 1 1 1 1 C(:,:,2) = 2 2 2 2 2 2 C(:,:,3) = 3 3 3 3 3 3 >> </span>
3)由函数ones、zeros、rand、randn直接创建标准高维数组
<span style="font-size:18px;">>> D=rand(2,4,3) D(:,:,1) = 0.6948 0.9502 0.4387 0.7655 0.3171 0.0344 0.3816 0.7952 D(:,:,2) = 0.1869 0.4456 0.7094 0.2760 0.4898 0.6463 0.7547 0.6797 D(:,:,3) = 0.6551 0.1190 0.9597 0.5853 0.1626 0.4984 0.3404 0.2238 >> </span>
4)借助cat,repmat等函数构建高纬数组
<span style="font-size:18px;">>> E=eye(2,3) E = 1 0 0 0 1 0 >> E3=repmat(E,[1,2,2]) E3(:,:,1) = 1 0 0 1 0 0 0 1 0 0 1 0 E3(:,:,2) = 1 0 0 1 0 0 0 1 0 0 1 0 >> </span>
2、高纬数组的重排
B=permute(A,DimOrder_0) %重排A的维度 AA=ipermute(B,DimOrder_i) %permute的逆序操作
在permute指令中,第二输入量DimOrder_0是维度序号行向量。该向量的各元素的位置对应B数组的维度号;而各元素值是值A的维度号。
<span style="font-size:18px;">>> A=reshape(1:24,[2,4,3]) A(:,:,1) = 1 3 5 7 2 4 6 8 A(:,:,2) = 9 11 13 15 10 12 14 16 A(:,:,3) = 17 19 21 23 18 20 22 24 >> DimOrder=[3,2,1] DimOrder = 3 2 1 >> B=permute(A,DimOrder) B(:,:,1) = 1 3 5 7 9 11 13 15 17 19 21 23 B(:,:,2) = 2 4 6 8 10 12 14 16 18 20 22 24 >> AA=ipermute(B,DimOrder) AA(:,:,1) = 1 3 5 7 2 4 6 8 AA(:,:,2) = 9 11 13 15 10 12 14 16 AA(:,:,3) = 17 19 21 23 18 20 22 24 >> </span>
matlab高维数组
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。