[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: indexing over structure tags



Just use the numeric tag syntax for structures.

   for i=0,n_tags(data)-1 do begin
        data.(i).values = .. some expresion ...
   endfor

where the (i) indicates use the i'th element of the structure.
So you don't need to use the names at all.

	Regards,
	Tom McGlynn
       
Randall Skelton wrote:
> 
> Hello,
> 
> Imagine someone has a structure of structures...
> 
>   ; define the basic structure for each
>   sm_struc = {basic_struct, comment: ' ', values: fltarr(nlev)}
> 
>   ; define the large structure
>   data = {big_struct, so4: sm_struc, co2: sm_struc, hcl: sm_struc}
> 
> The IDL manual describes how to make an array of the tags in a structure
> using:
> 
>   ; get the names of the tags
>   names = tag_names(data)
> 
> so that names = [so4, co2, hcl].
> 
> That is all fine.  But is it possible to index over the tag names with a
> for-loop?
> 
> i.e.   for i=0, n_elements(names)-1 do data.names[i].values = i
>                                        ^^^^^^^^^^^^^^^^^^^^
> 
> where IDL determines what the appropriate label 'data.name[i].values' is.
> 
> Thanks,
> Randall