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

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 日

0 投票

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 件)

カテゴリ

ヘルプ センター および File ExchangeProgramming についてさらに検索

タグ

質問済み:

2017 年 2 月 12 日

編集済み:

Jan
2017 年 2 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by