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

Home » Public Forums » archive » Re: using the WHERE function on a portion of an array
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: using the WHERE function on a portion of an array [message #59121 is a reply to message #59029] Tue, 04 March 2008 14:17 Go to previous message
becky_s is currently offline  becky_s
Messages: 4
Registered: February 2008
Junior Member
On Mar 4, 2:15 pm, Jean H <jghas...@DELTHIS.ucalgary.ANDTHIS.ca>
wrote:

> Now you are try to apply your 2D array in a 3D one, which can not work
> properly.
> To access your 3D array, you must either have a 3D index, or have a 1D
> index.
>
> So in your case, you want to write in C, on the 5th plane:
> indices1D_C = indices + (n_elements(C[0,*,*]) * 4
> And you want to read B on the 1st plane:
> indices1D_B = indices
>
> and then C[indices1D_C] = B[indices1D_B]
>

Jean,
Well, that is pretty slick! I knew there had to be some problem with
all my 2d to 3d dimension switching I was doing.

I did have to modify your solution somewhat, though. I ended up with
(I also generalized my previous code somewhat):

indices = WHERE(A[i,*,*] ge j AND A[i,*,*] lt (j+1), count)
if count gt 0 then begin
indices1D_C = indices*n_elements(C[*,0,0]) + j
indices1D_B = indices*n_elements(A[*,0,0]) + i
C[indices1D_C] = B[indices1D_B]
endif

Thanks again.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Expensive loops... can they be avoided?
Next Topic: itools (mouse) events

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

Current Time: Wed Oct 08 15:59:03 PDT 2025

Total time taken to generate the page: 0.00184 seconds