with this code, im trying to display the results for (y0-y100). But im always getting the error. need help on this.thanks
1 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
回答(1 个)
David Young
2011-12-4
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 个评论
Walter Roberson
2011-12-4
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!