matlab三维矩阵转为二维矩阵

用matlab读取一个6波段影像,读取的是m*n*6的三维矩阵,请问如何用reshape或者其他命令,把这个矩阵转化为k×6的二维矩阵呢?(其实就是在三维情况下,把m×n... 用matlab读取一个6波段影像,读取的是m*n*6的三维矩阵,请问如何用reshape或者其他命令,把这个矩阵转化为k×6的二维矩阵呢?(其实就是在三维情况下,把m×n的矩阵化为一维的)
谢谢!
展开
 我来答
mxx米小夕
2018-03-31 · TA获得超过1.6万个赞
知道小有建树答主
回答量:5
采纳率:50%
帮助的人:5274
展开全部

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

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

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

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

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

佬的啊我沙沟曾08
2012-10-31 · TA获得超过1045个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:322万
展开全部
对啊,可以 用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的矩阵了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
victoriajll
推荐于2018-02-26 · TA获得超过4884个赞
知道大有可为答主
回答量:654
采纳率:100%
帮助的人:1054万
展开全部
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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式