方法1:
采用reshape处理。
方法2:
采用:squeeze 处理。
方法3:
在定义的时候,抽取元素形式为A=B(:,:,i)。
1.matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。
前者可以缩减为二维,而后者不能缩减为二维的主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有。
2.matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。
前者本来也应该算是三维的,可以缩减为二维,而后者不能缩减为二维的主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有。
对啊,可以 用reshape来实现,只是实现的格式需要你自己把握
比如
for ii=1:4
for jj=1:3
for kk=1:2
A(kk,jj,ii)=ii+jj+kk;
end
end
end
B=reshape(A,[],3)
就是把Areshape成n*3的矩阵了
a=rand(m,n,6)
b=reshape(m*n,6)
一个示例:
>> a=rand(2,3,2)
a(:,:,1) =
0.8147 0.1270 0.6324
0.9058 0.9134 0.0975
a(:,:,2) =
0.2785 0.9575 0.1576
0.5469 0.9649 0.9706
>> b=reshape(a,6,2)
b =
0.8147 0.2785
0.9058 0.5469
0.1270 0.9575
0.9134 0.9649
0.6324 0.1576
0.0975 0.9706