Storing Values From a Loop

1 view (last 30 days)
I'm doing a project involving an implementation of Euler's method for class, and am using a "for" loop to increment my values. The code below runs, but whatever new y value I get is overwritten as the loop goes through. I need to be able to save those y values after each time through the loop and put them into a matrix so that they can later be graphed. I'm not sure how to do this, so any help is appreciated!
a=1250
q=500
c=160
n=0.5
y=1.1
for t=0:n:2
s=3*(q/a)*sin(t)^2-(c*(1+y)^1.5)/a
y=y+s
end
Thanks,
-Kyle

Accepted Answer

Kaushik Lakshminarasimhan
Replace
s=3*(q/a)*sin(t)^2-(c*(1+y)^1.5)/a
y=y+s
with
s=3*(q/a)*sin(t)^2-(c*(1+y(end))^1.5)/a;
y=[y y(end)+s];
  2 Comments
Kyle Fertig
Kyle Fertig on 5 Nov 2017
That's awesome, thanks! How does the (end) thing work? I assume it's a sort of function since the "s=" equation is still starting y at 1. 1
-Kyle
Kaushik Lakshminarasimhan
end is a keyword, not a function. It simply picks out the last element of an array. For example, if x = [1 2 3 4 5], then x(end) = 5

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!