2017-02-16 63 views
0

我想重塑矩阵,但不是以标准方式。它基本上是一个“块”重塑。我有一个名为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 

回答

2

使用reshape进行整形......您从字面上描述了文本中的标准整形。

reshape(matrix1,N,T).'