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

5 vues (au cours des 30 derniers jours)
Kalamaya
Kalamaya le 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 commentaire
per isakson
per isakson le 9 Mai 2012
I think it can be done with memmapfile, but I haven't tried.

Connectez-vous pour commenter.

Réponse acceptée

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

Plus de réponses (1)

Walter Roberson
Walter Roberson le 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