Find out how many samples in a *.bin or *.dat file exist, before reading it in MATLAB

1 回表示 (過去 30 日間)
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!

採用された回答

Walter Roberson
Walter Roberson 2012 年 6 月 21 日
BytesPerSample = 4; %for example
fid = fopen('foo.bin', 'r');
fseek(fid, 0, 'eof');
pos = ftell(fid);
fclose(fid);
NumSamples = pos / ByesPerSample;

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFile Operations についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by