comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Help with getting rid of a FOR loop
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Help with getting rid of a FOR loop [message #60474 is a reply to message #60473] Tue, 20 May 2008 19:36 Go to previous messageGo to previous message
nathan12343 is currently offline  nathan12343
Messages: 14
Registered: August 2007
Junior Member
On May 20, 5:48 pm, nathan12343 <nathan12...@gmail.com> wrote:
> On May 20, 5:33 pm, pgri...@gmail.com wrote:
>
>
>
>> Jean H wrote:
>>>> dist=sqrt((xx-xcenter)^2+(yy-ycenter)^2)  ;array of radii
>
>>>> mask=fltarr(imsize,imsize)-1
>
>>>> FOR i=0,num-1 DO BEGIN
>>>>     wh=where(dist GE r[i] and dist LE r[i+1])
>>>>     mask[wh]=i
>>>> ENDFOR
>
>>>> END
>
>>>> I would like to find some way to get rid of the FOR loop at the end.
>>>> All I'm doing in that loop is going through the annuli one by one,
>>>> finding the pixels in that annuli, and setting the corresponding
>>>> pixels in mask to the correct mask value.
>
>>>> Thanks for any help anyone can provide!
>
>>>> Nathan Goldbaum
>
>>> Hi Nathan,
>
>>> if your computer memory permits it, you can
>>> 1) reform your dist array so it is now a n_elements(dist) *
>>> n_elements(r) array. basically, you will copy the distances
>>> n_elements(r) times.
>>> 2) reform your r array so it is now a n_elements(dist) * n_elements(r)
>>> array.
>>> 3) shift the array from (2) by 1
>>> 4) do where(new_dist GT new_r and new_dist LT new_r_plus_1)
>>> 5) divide the returned index by n_elements(r). You will know, for each
>>> r, which elements satisfies your condition!
>
>> I guess that the original problem is not so much that for loops are
>> slow,
>> but that "where" is slow. So I fear that the above strategy won't gain
>> much speed, as now where must work on a much larger array...
>
>> Ciao,
>> Paolo
>
>>> Sorry if it is not too clear... that's a "quick answer before to leave"...
>>> Jean
>
> Will histogram work with unevenly spaced bins?

Histogram does work for irregular binsizes if you use VALUE_LOCATE, I
think I'll be able to do this using histogram.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: iTools export to variable woes
Next Topic: interact with iimage from the command line?

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 17:50:23 PDT 2025

Total time taken to generate the page: 0.00444 seconds