Matlab:不知道大小的恐惧

时间:2014-06-04 11:34:26

标签: matlab

如果我有一个存储整数列表的二进制文件,我如何读取文件并将所有整数存储在一个数组中,指定精度为整数,但不指定文件中的整数数?

在fread函数的Matlab文档中,数组的预期大小在精度之前:

A = fread(fileID,sizeA,precision)

那么如果你知道精度是多少但是大小未知 - 我想加载文件中的所有整数直到文件结束?

2 个答案:

答案 0 :(得分:0)

如果所有文件都包含以二进制形式存储的整数(例如,int32值),那么文件中的整数数量由以下代码片段给出:

NAME_TYPE = 'int32';
SIZE_TYPE = 4;

fseek(fileID, 0, 'eof');
sizeA  = fix(ftell(fileID) / SIZE_TYPE);

fseek(fileID, 0, 'bof');
A = fread(fileID, sizeA, NAME_TYPE);

代码只计算整数的数量作为文件的大小(以字节为单位)除以每个整数值的字节数,然后从文件中读取整数值的数量。

答案 1 :(得分:0)

fread(fileID,inf,precision)读取“无限”字样。样本数量(即文件末尾)。