Suming vectors which are produced in a loop

2 ビュー (過去 30 日間)
Steven Martin
Steven Martin 2018 年 3 月 27 日
コメント済み: Stephen23 2018 年 3 月 27 日
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 件のコメント
Stephen23
Stephen23 2018 年 3 月 27 日

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

サインインしてコメントする。

採用された回答

Birdman
Birdman 2018 年 3 月 27 日
編集済み: Birdman 2018 年 3 月 27 日
n=3;
sumV=zeros(n,1);
for i = 1:n
V = [i; 2*i; 3*i];
sumV(i,1)=sum(V,1);
end
  2 件のコメント
Steven Martin
Steven Martin 2018 年 3 月 27 日
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 2018 年 3 月 27 日
Not 3 vectors, it returns only one vector:
sumV =
6
12
18

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by