2014-02-04 3 views
-4

Я хочу собрать матрицу из 5 векторов, используя петлю for в Matlab. Как я могу это сделать? Или есть простая альтернатива сделать то же самое?как собрать векторы в матрицу, используя для цикла в MATLAB

Вот пример: у меня есть 5 векторов:

A = [1 2 3] 
B = [1 2 3] 
C = [1 2 3] 
D = [1 2 3] 
E = [1 2 3] 

я хочу, чтобы создать матрицу Z размером 3 х 5 из этих векторов.

+0

В его нынешнем виде q uestion не имеет смысла. Пожалуйста, добавьте * много * подробнее – Dan

+0

ok. У меня 5 векторов А = [1 2 3] В = [1 2 3] С = [1 2 3] D = [1 2 3] Е = [1 2 3] Я хочу, чтобы создать матрица «Z» из этих векторов размером 3 x 5. Как это сделать, используя цикл? – user3270090

+0

Что значит «собирать»? Это не определенная операция. Вы ищете 'vcat' или' hcat'? – Daniel

ответ

1

for Петли, как правило, плохая идея в Matlab. Используйте векторизованную синтаксис:

Z = [A;B;C;D;E]'; %'// vertical concatenation (5x3), then transpose to get 3x5 
>> size(Z) 
ans = 

    3  5 

Вы можете также перенести векторы первого, а затем объединить их:

Z = [A' B' C' D' E']; %'// this comment is a syntax highlighting hotfix 
>> size(Z) 
ans = 

    3  5 

Если вы действительно настаиваете на использовании for петли, вот как бы это сделать:

Z(3,5) = 0; %// preallocate a 3x5 numerical matrix 
for i=1:3 
    Z(i,1) = A(i); 
    Z(i,2) = B(i); 
    Z(i,3) = C(i); 
    Z(i,4) = D(i); 
    Z(i,5) = E(i); 
end 

Но это действительно не имеет смысла делать это таким образом ...

Смежные вопросы