分块进行非平凡重塑

Non-trivial reshape in chunks

我正在尝试重塑矩阵,但不是以标准方式。它基本上是 "chunk" 重塑。我有一个名为 matrix1 的列向量,它是 (T*N x 1) 和一个名为 matrix2 的矩阵,它是 TxN。我想将列向量 matrix1 的前 N ​​个元素转置到 matrix2 的第一行。然后将向量 matrix1 的 N 个元素的第二块转置到 matrix2.

的第二行

我知道如何用循环来完成(见下面的代码)。只是想知道是否有更聪明的方法。

T = 2;
N = 7;

matrix1 = rand(T*N,1);
matrix2 = NaN(T,N);

for t = 1:T
    matrix2(t,:) = matrix1(t*N-N+1:t*N,1)';
end

使用 reshape 进行重塑...您在文中描述了一个标准的重塑。

reshape(matrix1,N,T).'