Clear Filters
Clear Filters

with this code, im trying to display the results for (y0-y100). But im always getting the error. need help on this.thanks

2 views (last 30 days)
for k=1:100
y(k)=y(k-1)*k;
y(0)=1;
end
??? Attempted to access y(0); index must be a positive integer or logical.

Answers (1)

David Young
David Young on 4 Dec 2011
In MATLAB, indices start from 1. The first time through the loop, the code tries to do this:
y(1) = y(0)*1;
but there is no element y(0).
What you probably need to do is to put the line
y(1) = 1;
before the loop, and start the loop at k=2 by writing "for k=2:100".
  1 Comment
Walter Roberson
Walter Roberson on 4 Dec 2011
You need to go to 101 and you need
y(k) = y(k-1)*(k-1);
The code (explicitly or implicitly) calculates 0! to 100! which is 101 values. If you do not use *(k-1) and do not go to 101, you have the effect of calculating 1! to 100! which is 100 values.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!