2014-04-22 24 views
0

讓我們考慮下面的代碼位:使用vertcat矩陣的連擊列作1D列

[m,n]=size(X); 

if m == (n+1) 
    Z = vertcat(U(:,1:2:d), V(:,1:2:d)); 
else 
    Z = vertcat(U(:,[1:2:d])); 
end 

C=Z(:); 

我希望它做的是串聯奇異向量爲一個向量是什麼。例如,我想連接前d個左右奇異向量,但問題是它創建了一個多維列,這就是爲什麼我寫C = Z(:)的原因。但是,我可以使用vertcat創建一維列向量嗎?提前致謝!

回答

1

它看起來像你可能剛翻轉你的行和列索引。 U(:,1:2:d)將返回一個行向量,然後用另一個行向量進行垂直。試試這個:

[m,n]=size(X); 

if m == (n+1) 
    Z = vertcat(U(1:2:d,:), V(1:2:d,:)); 
else 
    Z = vertcat(U([1:2:d]), :)); 
end 

C=Z(:); 

我希望有幫助。

+0

感謝您的幫助 –