How can I update initial value of an array in a for loop?

3 次查看(过去 30 天)
a(1)=0.1, a(2)= 0.11;
for k=2:10^10
a(k+1)= a(k)+a(k-1)+.....
if a(k+1)> 5.0
Up = k ;
end
end.
It takes a lot of memory as iteration number is very high.
How can I update the initial value like a(3)=a(2); a(1)=a(2)
and find new a(3) till my condition is satisfied.
  6 个评论
Greg
Greg 2018-2-10
编辑:Greg 2018-2-10
I'm assuming the initial conditions (first two values), or the threshold change? Otherwise, this is a trivial problem and k never changes.
Greg
Greg 2018-2-10
My comment on preallocation comes from the ambiguity of a(k+1)= a(k)+a(k-1)+..... This made me think you needed the entire vector.

请先登录,再进行评论。

采纳的回答

Greg
Greg 2018-2-10
编辑:Greg 2018-2-10
Use 3 separate variables, with a slight fix to the value assignment you suggested in the question. Also, throw a break inside the condition - or better, use a while loop (with the counter).
one = 0.1;
two = 0.11;
for k=2:10^10
three = one + two;
if three > 5.0
break
end
two = three;
one = two;
end

更多回答(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