From: Wolfgang Date: 2006-03-30T01:13:43+09:00 Subject: Re: reading/writing binary problem Hello, yes I want to extract a matrix of 1024x1024 of binary data (2bytes for each value). But ahead of this data is 1048576 bit (13312 bytes) of crap. I don't know matlab at all and I don't like to start this routine when I want to import that data into my application, which can not skip this header. If it is easier to do by a linux command (its running in cygwin) any help is also welcome. Wolfgang PS: I will also test the example of Robert ara.t.howard@noaa.gov schrieb: > On Wed, 29 Mar 2006, Wolfgang wrote: > >> Hi, >> >> I have some binary files which I need to delete some data at the >> beginning of the file (to extract the raw data out of the file). I got >> a matlab file from a colleque but I would prefer if I could do it with >> ruby. >> >> This matlab code does the trick: >> function m=write_rad(filename) >> file=fopen(filename); >> f= fread(file,'uint16'); >> >> [r,k]=size(f); >> if k==1; >> t=r-1048576; >> m=f(t+1:r,:); >> end >> end % function >> >> How can I do this in ruby? I'm completely lost. >> >> Thanks >> Wolfgang > > this sould be easy if i understood that method and the nature of your > data ;-) > > here's what i understand this method to do : > > # open the file > > file=fopen(filename); > > # read all available unit16 quantities into an [m, n] array > > f= fread(file,'uint16'); > > # check the size of this array, r is the number of elements read > > [r,k]=size(f); > > # k will be one iff data was read into r dimension > > if k==1; > > # here i assume 1048576 is the 'row_size' of 1mb. we set t to be the > offset > # of the last row > > t=r-1048576; > > # because matlab is evil and uses one based indexing, we inc t by one and > # extract the last row/block of data. but here it seems like the ith > index > # should be t+1:r-1048576 no? otherwise it seems like this would be > out of > # bounds? > > m=f(t+1:r,:); > > > in any case this looks alot like you are trying to extract the last 1mb of > uint16 quantities from a data file - is that right? let me know and > i'll show > you how to do this. > > regards. > > -a