我试图用20个行向量在MATLAB中创建一个20 x 2000阵列,每个行向量为2000个元素。我该怎么做呢?
具体来说,如果我的行向量的格式为vector_1
,vector_2
,... vector_N
,是否有一种简单的方法可以将所有这些行向量组合成更大的{{} 1}} x 2000数组,可能使用N
?
答案 0 :(得分:1)
如果你想以编程方式访问变量以避免编码,你可以这样做:
vect=[];
for ii=1:N
vect=eval(strcat('cat(1,vect, vect_',num2str(ii) ,')'));
end
这应该以{{1}},cat(1,vect,vect_1)
,cat(1,vect,vect_2)
的形式创建字符串,然后对其进行评估。
我希望这就是你想要的。
答案 1 :(得分:1)
如果您的变量都以Vector_x样式命名,并且您想要包含此类变量,则可以使用:
vectors = who('-regexp','vector_\d+');
A = zeros(length(vectors),numel(eval(vectors{1})));
for i = 1:numel(vectors)
A(i,:) = eval(vectors{i});
end