我試圖在20個向量中創建一個20 x 2000的數組,每個數組長度爲2000個元素。我會如何去做這件事?從行向量創建更大的數組
具體地,如果我的行矢量的形式爲vector_1
,vector_2
,... vector_N
的,是有所有這些行向量合併成一個更大的N
×2000個陣列,可能使用sprintf
的一個簡單的方法?
我試圖在20個向量中創建一個20 x 2000的數組,每個數組長度爲2000個元素。我會如何去做這件事?從行向量創建更大的數組
具體地,如果我的行矢量的形式爲vector_1
,vector_2
,... vector_N
的,是有所有這些行向量合併成一個更大的N
×2000個陣列,可能使用sprintf
的一個簡單的方法?
如果您希望通過編程訪問的變量,以避免harcoding你可以做這樣的:
vect=[];
for ii=1:N
vect=eval(strcat('cat(1,vect, vect_',num2str(ii) ,')'));
end
這應該在形式cat(1,vect,vect_1)
,cat(1,vect,vect_2)
,cat(1,vect,vect_3)
創建的字符串...然後評估他們。
我希望這是你想要的。
創建一個矩陣我通常不會使用'eval'對答案進行投票,但是在這裏我沒有看到任何其他選擇......特別是在OP有多個命名向量的情況下。 ..所以+1! – rayryeng 2014-11-06 16:59:35
@rayryeng其definetly函數我避免使用,但很好,有時你只需要我猜 – 2014-11-06 23:06:01
如果你的變量是在風格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
很好用'who'。 +1。 – rayryeng 2014-11-06 17:00:06
查找級聯; http://www.mathworks.com/help/matlab/ref/cat.html?searchHighlight=cat – 2014-11-06 16:29:39
'cat(1,array1,array2 ...)'應該這樣做。 – Divakar 2014-11-06 16:30:29
謝謝!我是否能夠通過參數中的數組循環遍歷貓,如果說我正在處理100個向量而不是20個向量? – Greg 2014-11-06 16:35:31