Find out how many samples in a *.bin or *.dat file exist, before reading it in MATLAB
3 views (last 30 days)
Show older comments
I am trying to figure out how I can tell, in MATLAB, how many samples exist in a given *.bin or *.dat file, before I go ahead and read it.
Obviously, I know the data type, (float, int16, etc) before hand.
I know that I can use something like:
fid = fopen('foo.bin', 'r');
data = fread(fid, inf, 'int16');
fclose(fid);
, and this code will read ALL the samples in, but the problem is that I want to know how big the file is to begin with, so that I can divvy up how to read it it. The files I am dealing with are humungous and I cannot use inf. (Or if I can, it takes forever).
So to summarize, I would like to be able to find a way to be able to tell, through MATLAB, how many samples (of a specified type) I have in my *.bin file, so that I can decide how to divide it up.
Thanks!
0 Comments
Accepted Answer
Walter Roberson
on 21 Jun 2012
BytesPerSample = 4; %for example
fid = fopen('foo.bin', 'r');
fseek(fid, 0, 'eof');
pos = ftell(fid);
fclose(fid);
NumSamples = pos / ByesPerSample;
More Answers (0)
See Also
Categories
Find more on Low-Level File I/O in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!