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

Home » Public Forums » archive » Re: array addressing
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: array addressing [message #2514] Tue, 02 August 1994 02:44 Go to previous message
sjt is currently offline  sjt
Messages: 72
Registered: November 1993
Member
Terry Kucera (kucera@stars.gsfc.nasa.gov) wrote:
: In article <CtvMnL.MAD@hpl.hp.com>, peter@hpl.hp.com (Peter Webb) writes...
: >William Thompson (thompson@orpheus.gsfc.nasa.gov) wrote:
: >: kump@morph.ebme.cwru.edu (Kenneth S. Kump) writes:
: >
: >: >Just a quick question:
: >
: >: >A=indarr(10,5)
: >: >B=[0,0,1,0,1]
: >
: >
: >: >I would like array C to consist of only A(*,2) and A(*,4).
: >: >I understand why C=A(*,B) doesn't work, but what is the
: >: >correct way?
: >
: >: Just thinking off the top of my head, one could do something like the
: >: following:
: >
: >: IDL> SZ = SIZE(A) ;Get dimensions of A
: >: IDL> BB = REPLICATE(1,SZ(1)) # B ;Match dims. of B to A
: >: IDL> C = A(WHERE(BB EQ 1)) ;Extract requested data
: >: IDL> C = REFORM(C,SZ(1),TOTAL(B)) ;Rectify dimensions
: >
: >: I haven't actually tried this to confirm that it works, but I think it will.
: >: :^)
: >
: >: Bill Thompson
: >
: >Or, c=a(*,[2,4]) might be a bit easier...

: Or, c=a(*,where(b)) if you don't know b ahead of time.
: Terry Kucera

maybe for safety you might be better with:

locs=where(b,nl)
if (nl ne 0) then c=a(*,locs)

to avoid the risk of having effectively c=a(*,-1) which will crash your
program.

--
James Tappin, School of Physics & Space Research
University of Birmingham
sjt@xun8.sr.bham.ac.uk
"If all else fails--read the instructions!"

O__
-- \/`
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Bug in formatted read?
Next Topic: Re: convert 4 bytes into a long

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

Current Time: Sat Oct 11 14:35:23 PDT 2025

Total time taken to generate the page: 0.95998 seconds