MATLAB三维数组转为二维数组(时间序列分析中很有用)

在MATLAB中三维数组转二维的方法

一、写该程序的初衷

在处理时间序列遥感数据的时候,我之前的做法是:

  1. 将时间序列数据读取为三维矩阵;
  2. 将该数据保存为BIP格式;
  3. 在每个像元上进行循环,取出其第三维(比如有46景影像,对应46个值)
  4. 对取出的时间序列进行计算。

二、小结

  1. 该方法确实可以进行计算并得到结果,但是对于较大的区域时,会造成计算速度慢的问题。
    原因是,要获取每个像元的时间序列,必须要进行三个for循环。
  2. 而下面的方法仅需要一个for循环。

三、优化方法示例

% Reshape array
a=[[1,2,3];[4,5,6]]
b=[[11,22,33];[44,55,66]]
bb=[[111,222,333];[444,555,666]]
c(:,:,1)=a
c(:,:,2)=b
c(:,:,3)=bb
% cc=reshape(c,[6,2])
ccc=reshape(c,[6,3])

结果如下:

在这里插入图片描述

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值