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

1 Ansicht (letzte 30 Tage)
suman Dhamala
suman Dhamala am 10 Feb. 2018
Bearbeitet: Greg am 10 Feb. 2018
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 Kommentare
Greg
Greg am 10 Feb. 2018
Bearbeitet: Greg am 10 Feb. 2018
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 am 10 Feb. 2018
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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Greg
Greg am 10 Feb. 2018
Bearbeitet: Greg am 10 Feb. 2018
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

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by