How do I store values from a for loop
1 次查看(过去 30 天)
显示 更早的评论
This is euler's method. I need to plot x0 against y0 without doing it inside the forloop, as it causes performance issues later on. I thought that maybe I could store all individual values of x0 and y0 from the forloop inside two separate vectors and then perform the plot, so that I don't need to plot for every iteration of the forloop. What should I write to store it in vectors? The next problem: This is a function file, so if I store the data in two vectors, how do I recall the data in order to perform a plot, when I am outside the function file?
function euler = eul(n,h)
y0 = 0;
x0 = 0;
%%dy is a separate function located somewhere else
for t = 1:n
x1 = x0 + h;
y1 = y0 + h * dy(y0);
euler = y1;
%%updating values x0 and y0 in preparation for next loop
x0 = x1;
y0 = y1;
%%This is my current abomination of an attempt to plot.
plot(x0,y0,'x')
hold on
end
end
1 个评论
madhan ravi
2018-10-31
Upload all the necessary information instead of giving information but by bit , saves time!!
采纳的回答
Star Strider
2018-10-31
‘What should I write to store it in vectors?’
I would create ‘x0v’ and ‘y0v’ (for example) to store them:
function [euler,x0v,y0v] = eul(n,h)
y0 = 0;
x0 = 0;
x0v = zeros(1,n); % Preallocate
y0v = zeros(1,n); % Preallocate
%%dy is a separate function located somewhere else
for t = 1:n
x1 = x0 + h;
y1 = y0 + h * dy(y0);
euler = y1;
%%updating values x0 and y0 in preparation for next loop
x0 = x1;
y0 = y1;
x0v(t) = x0;
y0v(t) = y0;
%%This is my current abomination of an attempt to plot.
plot(x0v, y0v, 'x')
hold on
end
end
‘... how do I recall the data in order to perform a plot ...’
Add them as outputs, as I did here. The rest of your code is unchanged.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!