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

Home » Public Forums » archive » Name of arrays
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: Name of arrays [message #79330 is a reply to message #79269] Tue, 21 February 2012 06:50 Go to previous messageGo to previous message
Paul Van Delst[1] is currently offline  Paul Van Delst[1]
Messages: 1157
Registered: April 2002
Senior Member
Craig Markwardt wrote:
> On Feb 20, 1:15 pm, Brian Wolven <brian.wol...@gmail.com> wrote:
>> Or create_struct, using the month as the tag name, for pretty much any version of IDL.
>
> +1.

and once more: +1.

To the OP, it's quite easy to modify structures as you go - as long as you use anonymous structure. So in your case you
could do something like:

IDL> t = findgen(31)
IDL> month_data = create_struct('january', t)
IDL> help, month_data
** Structure <9430c3c>, 1 tags, length=124, data length=124, refs=1:
JANUARY FLOAT Array[31]
IDL> print, month_data.january
0.00000 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000
7.00000 8.00000 9.00000 10.0000 11.0000 12.0000 13.0000
14.0000 15.0000 16.0000 17.0000 18.0000 19.0000 20.0000
21.0000 22.0000 23.0000 24.0000 25.0000 26.0000 27.0000
28.0000 29.0000 30.0000
IDL> t = findgen(28)+10.
IDL> month_data = create_struct(month_data,'february', t)
IDL> help, month_data
** Structure <9430f6c>, 2 tags, length=236, data length=236, refs=1:
JANUARY FLOAT Array[31]
FEBRUARY FLOAT Array[28]
IDL> print, month_data.february
10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000
17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000
24.0000 25.0000 26.0000 27.0000 28.0000 29.0000 30.0000
31.0000 32.0000 33.0000 34.0000 35.0000 36.0000 37.0000

It's like a poor man's hash, e.g.:

IDL> print, month_data.(where(tag_names(month_data) EQ 'FEBRUARY'))
10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000
17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000
24.0000 25.0000 26.0000 27.0000 28.0000 29.0000 30.0000
31.0000 32.0000 33.0000 34.0000 35.0000 36.0000 37.0000


cheers,

paulv



p.s. I reckon it's worth upgrading to v8.* to get access to IDL's HASH:

IDL> month_data=HASH()
IDL> help, month_data
MONTH_DATA HASH <ID=1 NELEMENTS=0>
IDL> month_data['January']=findgen(31)
IDL> month_data['February']=findgen(28)+10
IDL> help, month_data
MONTH_DATA HASH <ID=1 NELEMENTS=2>
IDL> print, month_data['February']
10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000
17.0000 18.0000 19.0000 20.0000 21.0000 22.0000 23.0000
24.0000 25.0000 26.0000 27.0000 28.0000 29.0000 30.0000
31.0000 32.0000 33.0000 34.0000 35.0000 36.0000 37.0000

It's just simpler.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: GRIB Webinar
Next Topic: Re: new graphics error message [_IDLITCONTAINER::SETPROPERTY]

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

Current Time: Wed Oct 08 18:12:54 PDT 2025

Total time taken to generate the page: 0.00559 seconds