Re: index arrays of structures [message #59228 is a reply to message #59227] |
Sat, 15 March 2008 14:07   |
Vince Hradil
Messages: 574 Registered: December 1999
|
Senior Member |
|
|
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
|
|
|