假设我们有以下矩阵
>> X=create_matrix1(B,20);
>> [U E V]=svd(X);
换句话说我们有矩阵,我们打算做这个矩阵的svd,然后很清楚跟随的事情
z=vertcat(U(:,1),U(:,2),U(:,3));
此向量的维度为
[m,n]=size(z)
m =
825
n =
1
同时关注事物
z1=vertcat(U(:,1:3));
[m,n]=size(z1)
m =
275
n =
3
所以我怎么能解决这个问题?提前谢谢 编辑:我想使用vertcat函数连接第一个d左右矩阵列
答案 0 :(得分:2)
如果您使用reshape
:
cols = [1:3];
z1 = reshape(U(:,cols), numel(U(:,cols)), 1);
您也可以将此用于非连续列,例如:
cols = [1 2 4 7];
示例:
A = [1 2 3;
4 5 6;
7 8 9]
cols = [1:2];
B = reshape(A(:,cols), numel(A(:,cols)), 1)
输出结果为:
A =
1 2 3
4 5 6
7 8 9
B =
1
4
7
2
5
8
答案 1 :(得分:1)
尝试:
startRange = 1;
StopRange = 5;
for ii = startRange:stopRange
col=U(:,ii)
newmat = [newmat; col]
end