Suming vectors which are produced in a loop

1 visualizzazione (ultimi 30 giorni)
Say I have a loop which returns three vectors:
for i = 1:3
V = [i; 2*i; 3*i];
end
returning
V = [1; 2; 3] V = [2; 4; 6] V = [3; 6; 9]
how do i then sum these to get
sumV = [1+2+3; 2+4+6; 3+6+9]
  1 Commento
Stephen23
Stephen23 il 27 Mar 2018

Why not just

>> 6:6:18
ans =
  6   12   18

Or

>> 6*(1:3)
ans =
  6   12   18

Or using bsxfun:

>> sum(bsxfun(@times,1:3,(1:3).'),1)
ans =
  6   12   18

Or if you really want to use a loop (which is a waste of MATLAB):

>> V = zeros(1,3);
>> for k = 1:numel(V), V(k)=sum(k*(1:3)); end
>> V
V =
  6   12   18

Accedi per commentare.

Risposta accettata

Birdman
Birdman il 27 Mar 2018
Modificato: Birdman il 27 Mar 2018
n=3;
sumV=zeros(n,1);
for i = 1:n
V = [i; 2*i; 3*i];
sumV(i,1)=sum(V,1);
end
  2 Commenti
Steven Martin
Steven Martin il 27 Mar 2018
This then returns 3 vectors I only want it to return one (the last one) as I want to use this in my code later on
Birdman
Birdman il 27 Mar 2018
Not 3 vectors, it returns only one vector:
sumV =
6
12
18

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by