[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FOR statement

Eli Beckerman wrote:
> In defense of myself, I wasn't using the FOR loop to make an array
> (I just excluded all the unnecessary stuff from my posting, and
> seemingly confused everyone even further!)
> But clearly, I was mixing the semantics of indexing with assignment
> as Craig pointed out!
> FOR i=0, 999 do radius(i) = i * 0.25 is the way to go for what I
> wanted. Thanks for seeing through my morning foggyness.


No matter how look at it, your example shows you *are* using a loop to
create an evenly spaced mesh vector. I guess I was trying to say that
using a loop is not the best way to do this in IDL. One of the wisest
pieces of advice I ever received about IDL programming was

"Try to think like an IDL programmer, not a Fortran or C programmer".

In this spirit, I submit that the following method is preferable:

nx = 1000    ; number of values required
dx = 0.25    ; step size
x1 = 0.0     ; start value
radius = lindgen(nx) * dx + x1

You might try changing the number of values to 10,000,000 and seeing
which method is faster.