在Matlab中重塑2D到5D数组



我有一组2D (M*N)的数据。该数组覆盖矩形网格点,并包含有关时间的各种数据。数据写入为:

x1  y1 t1 a b c ...
x2  y1 t1 a b c ...
.   .  .  . . . ...
x50 y1 t1 a b c ...
x1  y2 t1 a b c ...
x2  y2 t1 a b c ...
.   .  .  . . . ...
x50 y2 t1 a b c ...
.   .  .  . . . ...
x50 y40 t1 a b c ...
x1  y1 t2 a b c ...
.
.
.
x50 y40 t30 a b c ...

因此,数组在保持y固定的同时向前移动x,并在该点写入数据。Y被步进到下一个值,x被进阶,数据被写入。这种书写模式在最后一个网格点和时间前进后重复。总共有9个这样的数组。

我想把这个二维矩阵转换成5D数组,这样:

X , Y , DATA , TIME , CASE

所以它将是50个轴向网格点,40个垂直网格点,每个点15组数据(x,y,时间,a,b,c等),30个时间戳,9个案例。

我一直在Matlab中玩重塑函数,但似乎不可能让数组重塑成我想要的方式。

有人能帮忙吗?谢谢!

看来我找到了答案。我尝试了一个小得多的数组,结果发现组织重塑元素的方法是:

B = reshape(A, [X Y TIME DATA CASE])

然后,这是一个排列问题,将数组重新排列为X, Y, Data, Time, Case。

B = reshape(B, [1 2 4 3 5])

相关内容

  • 没有找到相关文章

最新更新