我有一组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个这样的阵列。
我希望将这个2D矩阵转换为这样的5D数组:
X , Y , DATA , TIME , CASE
所以它将是50个轴向网格点,40个垂直网格点,每个点(x,y,时间,a,b,c等)的15组数据,30个时间戳,9个例。
我一直在使用Matlab中的reshape函数,但似乎不可能将数组重新塑造成我希望的方式。
有人可以提供帮助吗?谢谢!
答案 0 :(得分:0)
所以我似乎找到了答案。我尝试了一个更小的数组,事实证明组织重塑元素的方法是把它作为:
B = reshape(A, [X Y TIME DATA CASE])
然后,将数组重新排列为X,Y,数据,时间,案例,这是排列问题。
B = reshape(B, [1 2 4 3 5])