plotting in a loop with a function

I have the following code:
for x = 1:0.01:1.5
z = g(x,rpf);
end
but when I run this (assume my function is correct), I only get that z is equivalent to the last data point. How can I store x and z in a matrix and then plot them?

 Risposta accettata

Bob Thompson
Bob Thompson il 5 Mar 2019

0 voti

You need to index z with each loop.
count = 0;
for x = 1:0.01:1.5;
count = count + 1;
z(count) = g(x,rpf);
end
plot(x,z)

7 Commenti

Benjamin
Benjamin il 5 Mar 2019
Modificato: Benjamin il 5 Mar 2019
This only has one value for x and z looks like it is produced as a row vector, not a column
Are you saying that z is a 2D array?
Plot should work no matter if x and z are row or column vectors, they just have to be 1D.
when i run this code, x is 1x1, not 51x1
Bob Thompson
Bob Thompson il 5 Mar 2019
Modificato: Bob Thompson il 5 Mar 2019
Mmm, I apologize. I get overzealous with my responses some times and miss things.
plot([1:0.01:1.5],z)
yeah, I mean I figured it out, I just set x=1:0.01:1.5 after the loop and before the plot command. was just noting that that plot command as it was could not explicitly be used. thanks for the help!
Benjamin
Benjamin il 5 Mar 2019
Modificato: Benjamin il 5 Mar 2019
Can I ask a follow-up? How could I do an outer loop for different values of rpf and then plot each one on the same plot? And the values for rpf would be like specific values: (i.e. 5.4, 6.7, 5.2 etc) Any ideas how I would do this? When I try it, it just keeps adding move rows to z, rather than just overwriting it on the next loop
I created a new question, maybe you could answer this question there.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by