필터 지우기
필터 지우기

What is wrong with my code in writing a for loop function

조회 수: 2 (최근 30일)
Coupe Honda
Coupe Honda 2017년 2월 12일
편집: Jan 2017년 2월 12일
function mysums(v)
sum_even=0;
sum_odd=0;
i=1;
for k = v
if mod(i,2)==0 & i<= size(v)
sum_even = sum_even + i;
else if i <= size(v)
sum_odd = sum_odd + i;
end
i = i+1;
end
disp([sum_odd , sum_even])
end
The loop is to sum odd nums and even nums from a vector input

채택된 답변

Jan
Jan 2017년 2월 12일
편집: Jan 2017년 2월 12일
size(v) replies a vector, such that i <= size(v) will not do, what you expect.
USe the automatic code indentation to find the problem of using "else if" instead of "elseif" immediately.
Prefer to write a loop like:
for i = 1:numel(v)
if mod(i, 2) == 1
...
else
...
Use v(i) to get the current element, not sum_odd = sum_odd + i, because you do not want to collect the indices - when I assume that your other question contains the text of this homework.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by