size(v) replies a vector, such thati <= 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, notsum_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.
I am assuming that "" is scalar and hence taking it as "r", but that shouldn't matter for this question. Also please initialize r, k before attemting to run the code. Here is the sample code:
sum = 0;
for n = 0:k-1
if mod(k+n, 2) == 1
sum = sum + (2*n+1)*r;
end
end
Note: This is not an optimized code and you may write a more optimized implementation.
Best Answer