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

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일

0 개 추천

n=3;
sumV=zeros(n,1);
for i = 1:n
V = [i; 2*i; 3*i];
sumV(i,1)=sum(V,1);
end

댓글 수: 2

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
Not 3 vectors, it returns only one vector:
sumV =
6
12
18

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2018년 3월 27일

댓글:

2018년 3월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by