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

Home » Public Forums » archive » Help requested in eradicating FOR loops
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 requested in eradicating FOR loops [message #57687 is a reply to message #57539] Wed, 19 December 2007 07:57 Go to previous messageGo to previous message
dplatten is currently offline  dplatten
Messages: 32
Registered: December 2007
Member
On Dec 18, 1:23 pm, Spon <christoph.b...@gmail.com> wrote:
> On Dec 18, 11:00 am, dplat...@gmail.com wrote:
>
>
>
>>> Off the top of my head:
>>> 1-reform the points to match the size of the image: x1 =
>>> reform(x1,image_height,image_width)
>>> 2-make in "index" array: idx = findgen(image_height,image_width)
>>> 3-make x-index and y-index arrays: x = idx mod image_height & y = idx/
>>> image_height (or maybe those should be image_width?)
>>> 4-do the calculation: distance = ( (y1-y2)*x + (x2-x1)*y + (x1*y2-
>>> x2*y1) ) / SQRT( (x2-x1)^2 + (y2-y1)^2 )
>>> 5-put together the results matrix: results =
>>> [[reform(image,image_height*image_width)],[distance]] (I'd have to
>>> check the brackets, I always do)
>
>> Thanks for the reply - as I understand it I need to make an array to
>> hold x pixel positions and one to hold y pixel positions. For a 4 x 6
>> array they would look like this:
>
>> x locations: [0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3, 0,1,2,3]
>> y locations: [0,0,0,0, 1,1,1,1, 2,2,2,2, 3,3,3,3, 4,4,4,4, 5,5,5,5]
>
>> I can make the x array by doing this:
>
>> test_image = findgen(4, 6) ; a dummy test "image"
>> temp = findgen(4 * 6)
>> x_locations = temp mod 4
>
>> but I am having problems creating the y locations array. Some help
>> would be appreciated.
>
>> Thanks, David
>
> y_locations = fix(temp) / 4

Thanks for the response. I initially was using
y_locations = REFORM( ROTATE( REFORM(temp MOD 6, 6, 4), 1), 4*6)
which does work, but your suggestion is much more elegant!

I have found that this works a bit better:
y_locations = FLOOR(temp / 4)

Many thanks for the friendly help.

David
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: iTools problem
Next Topic: Starting a for loop within an if loop

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

Current Time: Sun Oct 12 05:10:35 PDT 2025

Total time taken to generate the page: 0.64407 seconds