matlab三维矩阵转为二维矩阵

发布网友 发布时间:2022-04-22 05:25

我来回答

3个回答

热心网友 时间:2023-08-18 19:22

方法1:
采用reshape处理。
方法2:
采用:squeeze 处理。
方法3:
在定义的时候,抽取元素形式为A=B(:,:,i)。

1.matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。

前者可以缩减为二维,而后者不能缩减为二维的主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有。

2.matlab中三维数组顺序是:行、列、页。二维数组只有行、列。如果两只之间赋值,有一个维数缩减问题需要注意。

前者本来也应该算是三维的,可以缩减为二维,而后者不能缩减为二维的主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有。

热心网友 时间:2023-08-18 19:23

对啊,可以 用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的矩阵了

热心网友 时间:2023-08-18 19:23

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.99 0.9706
>> b=reshape(a,6,2)
b =
0.8147 0.2785
0.9058 0.5469
0.1270 0.9575
0.9134 0.99
0.6324 0.1576
0.0975 0.9706

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com