让我们考虑一下代码:
[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来创建一维列向量吗?提前谢谢!
答案 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(:);
我希望有所帮助。