我有一组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])