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

Home » Public Forums » archive » Re: index arrays of structures
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: index arrays of structures [message #59318 is a reply to message #59222] Sun, 16 March 2008 05:49 Go to previous message
Vince Hradil is currently offline  Vince Hradil
Messages: 574
Registered: December 1999
Senior Member
Raghu wrote:
> On Mar 15, 7:31�pm, Vince Hradil <hrad...@yahoo.com> wrote:
>> On Mar 15, 4:07 pm, Vince Hradil <hrad...@yahoo.com> wrote:
>>
>>
>>
>>
>>
>>> On Mar 15, 3:53 pm, Raghu <raghuram.narasim...@gmail.com> wrote:
>>
>>>> Hi,
>>
>>>> With reference to my recent posting (IDL batch indexing), i understood
>>>> that i could structures. However, i haven't been able to figure out
>>>> one step.
>>
>>>> Here is my code as of now:
>>>> ; I want to search for all the images(files) in the directory trials,
>>>> read them into the structure named data, and access each file within
>>>> the structure.
>>
>>>> pro strcutres
>>>> dir1='D:\trials'
>>>> cd,dir1
>>>> files=FILE_SEARCH('*[^\.{hdr}]', /QUOTE,count=numfiles)
>>>> i=0
>>>> while i lt numfiles do begin
>>>> named=files(i)
>>>> print,named
>>>> data={ID:'a',sizes:fltarr(2179,761)}
>>>> data=replicate(data,numfiles)
>>>> data.sizes=findgen(numfiles)
>>>> openr,1,named
>>>> readu,1,data[i].sizes
>>>> close,1
>>>> i=i+1
>>>> endwhile
>>>> end
>>
>>>> ERROR message- READU: Expression must be named variable in this
>>>> context: <FLOAT � � Array[2179, 761]>.
>>
>>>> I am getting the error here because it seems like i am not able to
>>>> read in the LUN 1 or named, into data[i].sizes.
>>
>>>> Where am i going wrong ?
>>
>>>> Raghu
>>
>>> Hoo boy - here you go.
>>
>>> 1-Yes, you need to use a named variable to readu
>>> 2-You already defined "sizes" (weird name, by the way, how about
>>> "values"), when you made the structure.
>>
>>> How about this:
>>
>>> pro strcutres
>>> dir1='D:\trials'
>>> cd,dir1
>>> files=FILE_SEARCH('*[^\.{hdr}]', /QUOTE,count=numfiles)
>>
>>> data={ID:'a',values:fltarr(2179,761)}
>>> data=replicate(data,numfiles)
>>> tempval = fltarr(2179,761)
>>
>>> for i=0L, numfiles-1 do begin
>>> named=files(i)
>>> print,named
>>
>>> openr,1,named
>>> readu,1,tempval
>>> free_lun,1
>>> data[i].values = tempval
>>
>>> endfor
>>
>>> return
>>> end
>>
>> BTW - why do you want to use a structure again? �The above code makes
>> all the data.id's = 'a'.
>>
>> Why can't you just read the data into a matrix? �If you want the
>> structure to contain the filename then add data[i].id = named inside
>> the loop.- Hide quoted text -
>>
>> - Show quoted text -
>
> Hi,
>
> Are you asking why i'm using structures in the first place ?
> If yes, my initial idea (from python lessons) was to create something
> like an empty array and then read in each file into this empty array
> by concatenation. That way each element would have a unique ID which i
> could use to access them.
> But it seems like i can't create an empty 2-d array of a certain size
> and number of files to be read ('numfiles' in my case).
> When you say create a matrix, is this what you meant ?
>
> I got the idea of using structures only from responses in my previous
> emails on 'batch indexing'.
>
> -R

I guess I'm still confused. I was suggesting just doing:
data = fltarr(nx,ny,numfiles)

then for each files[i] the image is data[*,*,i]

It's unique simply by the index.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: IDL 7.0 start error with segmentation fault
Next Topic: Longstanding Map Overlay Problem Solved!

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

Current Time: Sat Oct 11 00:59:59 PDT 2025

Total time taken to generate the page: 1.04045 seconds