On Feb 16, 4:59 pm, Spon <christoph.b...@gmail.com> wrote:
> On Feb 16, 4:46 pm, polystethylene <polystethyl...@hotmail.com> wrote:
>
>
>
>> I've run into a strange problem with this:
>
>> FOR i=0,nfiles-1 do begin
>> infile = string(filefolder)+string(i+1,format='("/",i3.3,".dump")')
>> OPENR,lun,infile,/GET_LUN
>> rows = FILE_LINES(infile)
>> data = fltarr(10,nstar,nfiles)
>> framearray = fltarr(10,rows)
>> READF,lun,format ='(I2,1x,I2,1x,I2,2x,F0,2x,I0,5F0.3)',framearray
>> close,lun
>> free_lun,lun
>> data[0,0,i] = framearray
>> print,i
>> print,data[*,*,i]
>> ENDFOR
>> print,data
>> RETURN
>> END
>
>> I've stuck a print statement within the loop to check that each 2-d
>> array is being written to the 3-d array with each pass of the loop,
>> and it seemed to be working fine.
>> However, when I came to pass the variable 'data' out to another
>> procedure, I noticed it was (mainly) full of zeros. A quick print
>> statement outside the loop within the above procedure revealed that I
>> had zeros throughout the entireity of 'data', except for the final
>> value of i.
>
>> I.e. there were only values for data[*,*,124], where 124 is the last
>> value of the loop index.
>
>> Has anyone come across such behaviour before?
>
> Hi Stefan,
>
> you need to stick this line:
> data = fltarr(10,nstar,nfiles)
>
> outside your FOR loop, so you don't keep re-defining it (full of
> zeroes) at every iteration.
>
> Regards,
> Chris
Ahha of course!
Good spot. Thanks guys
I love this place :D
I have a feeling it'll be some time before I'll be able to contribute
anything back to it though =/
|