For loop and adding elements to an array. How to?
1 view (last 30 days)
Show older comments
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 Comments
Accepted Answer
Stephen23
on 21 May 2015
Edited: Stephen23
on 21 May 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!
0 Comments
More Answers (0)
See Also
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!