For loop and adding elements to an array. How to?

2 visualizzazioni (ultimi 30 giorni)
I have some function y(x). I would like to generate a list of y values for x between -10^-3 and 10^-3 in 10^-4 intervals and plot y vs x. I'm trying to do something simpler and less messy first for practice:
function test
global x
for n = -5; n < 5; n+1;
x(end+1)=2*n;
end
end
but this leaves me with x = -10. Why? What am I doing wrong and how could I fix it? Also, is there a way to make an array of x AND their corresponding y values simultaneously and then just plot that one thing? Like list = {{1,1},{2,4},{3,6},{4,8}} and plot this as pairs of coordinates.
  5 Commenti
Solarmew
Solarmew il 21 Mag 2015
Yep. Watched a similar example of YouTube. Just realized that the help file I was looking at was for C ... why is there help for C in MatLab? +.+ ... that's the third time already that I try to use some syntax from the help file only to realize that it's not for MatLab ... dafuq ...
Walter Roberson
Walter Roberson il 21 Mag 2015
Where did you find that help file?

Accedi per commentare.

Risposta accettata

Stephen23
Stephen23 il 21 Mag 2015
Modificato: Stephen23 il 21 Mag 2015
MATLAB is not C or any other low-level programming language that requires loops to solve everything. In MATLAB the standard method is to generate the whole vector at once using the colon operator:
>> x = -10^-3:10^-4:10^-3
x = -0.001 -0.0009 -0.0008 -0.0007 -0.0006 -0.0005 -0.0004 -0.0003 -0.0002 -0.0001 0 0.0001 0.0002 0.0003 0.0004 0.0005 0.0006 0.0007 0.0008 0.0009 0.001
This is faster and neater than using loops: knowing how to write vectorized code makes using MATLAB a lot faster, productive and enjoyable!

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by