2017-02-16 57 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).'