How do I read in specific parts of a binary file?

4 Ansichten (letzte 30 Tage)
Kalamaya
Kalamaya am 9 Mai 2012
Hi all,
I would like to simply read in a specific, pre-determined length of a binary file in MATLAB. The file is huge, and I cannot/don't want to simply read all of it at once.
I have looked at the 'skip' command within fread but I do not want to skip chunks, I just have one chunk that I want to read in, and be done with it.
How can this be done? (The file is an int16 .bin file).
For example: My file has 1e6 samples, and it int16. I want to ONLY read in the values from sample, say, 433,232, up to, 546,323. How can this be done?
Thanks
  1 Kommentar
per isakson
per isakson am 9 Mai 2012
I think it can be done with memmapfile, but I haven't tried.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Oleg Komarov
Oleg Komarov am 9 Mai 2012
Use fseek and then fread.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 9 Mai 2012
fseek(fid, OFFSET, 'bof')
OFFSET would start at 0 for the first byte of the file.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by