matlab如何将三维转为二维_matlab 三维矩阵转二维矩阵(转)
matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。例如:A3是三维数组,A3(:,:,1)=[1,2,3;4,5,6];A3(:,:,2)=[7,8,9;10,11,12];那么在A2=A3(:,:,1)的赋值中,结果A2是一个二维矩阵(二维数组)(2X3的矩阵)。在A2=A3(1,:,:)的赋值中,结果A2是一个三维矩阵(1X3X2矩..
matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。
例如: A3是三维数组,A3(:,:,1)=[1,2,3;4,5,6]; A3(:,:,2)=[7,8,9;10,11,12];
那么在A2=A3(:,:,1)的赋值中,结果A2是一个二维矩阵(二维数组)(2X3的矩阵)。
在A2=A3(1,:,:)的赋值中,结果A2是一个三维矩阵(1X3X2矩阵)。
本质上它们都应该是一个二维矩阵,为什么后一种赋值中A2变成了一个三维的,而前者是二维的呢?
也就是说前者本来也应该算是三维的,怎么就可以缩减为二维,而后者不能缩减为二维呢?
主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有,所以,从屋里的角度没有缩减为二维。
matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。
例如: A3是三维数组,A3(:,:,1)=[1,2,3;4,5,6]; A3(:,:,2)=[7,8,9;10,11,12];
那么在A2=A3(:,:,1)的赋值中,结果A2是一个二维矩阵(二维数组)(2X3的矩阵)。
在A2=A3(1,:,:)的赋值中,结果A2是一个三维矩阵(1X3X2矩阵)。
本质上它们都应该是一个二维矩阵,为什么后一种赋值中A2变成了一个三维的,而前者是二维的呢?
也就是说前者本来也应该算是三维的,怎么就可以缩减为二维,而后者不能缩减为二维呢?
主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有,所以,从屋里的角度没有缩减为二维。
如果最后需要2维结果,方法1:
采用reshape处理,
方法2:
采用:squeeze 处理
方法3:
在定义的时候,抽取元素形式为A=B(:,:,i);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)