使用vertcat连接矩阵列以生成1D列

时间:2014-04-22 15:40:56

标签: matlab matrix svd

让我们考虑一下代码:

[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(:);

我想要它做的是将奇异向量连接成一个列向量。例如,我想连接第一个左右奇异向量,但问题是它创建了一个多维列,这就是我写C = Z(:)的原因。但是,我可以使用vertcat来创建一维列向量吗?提前谢谢!

1 个答案:

答案 0 :(得分: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(:);

我希望有所帮助。