Effacer les filtres
Effacer les filtres

Suming vectors which are produced in a loop

1 vue (au cours des 30 derniers jours)
Steven Martin
Steven Martin le 27 Mar 2018
Commenté : Stephen23 le 27 Mar 2018
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 commentaire
Stephen23
Stephen23 le 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

Connectez-vous pour commenter.

Réponse acceptée

Birdman
Birdman le 27 Mar 2018
Modifié(e) : Birdman le 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 commentaires
Steven Martin
Steven Martin le 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 le 27 Mar 2018
Not 3 vectors, it returns only one vector:
sumV =
6
12
18

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by