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 CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by