Re: IDL Voodoo Experts Needed [message #19046 is a reply to message #19040] |
Wed, 23 February 2000 00:00  |
Liam E. Gumley
Messages: 378 Registered: January 2000
|
Senior Member |
|
|
David Fanning wrote:
> Alright, here is an example of what I wake up to each
> morning, which might go a long way toward explaining why
> I never get any productive work done. A fellow writes me
> (this inevitably happens) on a topic we discussed just
> a couple of days ago. Namely, he wants to create an
> array of arrays--BUT, the original array is an array
> of structures.
>
> He puts the problem like this:
>
> Is it possible to create an array of arrays of structures?
> This does not work:
>
> l={layer,I:0,E:0.0,p:0.0,rho:0.0} ;STRUCT DEFINITION
> volume=replicate(l,layernum) ;ARRAY OF STRUCTURES
> evolution=replicate(volume,timesteps) ;ARRAY OF ARRAYS OF STRUCTURES
>
> I tried Craig Markwardt's CMReplicate program and the REBIN/REFORM
> voodoo offered by Liam Gumley and Bill Thompson, but all to no
> effect. All complain about structures.
>
> Since I *really* have to work on taxes and other financial
> matters this morning, and since I notice quite a few more
> willing bodies around here than we used to have, I'm turning
> this one over to the real experts. Any ideas? :-)
I think you're looking for a multi-dimensional array of structures:
IDL> layer = {layer, i:0, e:0.0, p:0.0, rho:0.0}
IDL> nlayers = 40
IDL> ntimesteps = 100
IDL> evolution = replicate(layer, nlayers, ntimesteps)
IDL> help, evolution
EVOLUTION STRUCT = -> LAYER Array[40, 100]
IDL> help, evolution[0, 0], /structure
** Structure LAYER, 4 tags, length=16:
I INT 0
E FLOAT 0.000000
P FLOAT 0.000000
RHO FLOAT 0.000000
Am I missing something?
Cheers,
Liam.
---
Space Science and Engineering Center, UW-Madison
http://cimss.ssec.wisc.edu/~gumley
|
|
|