如果我有一个存储整数列表的二进制文件,我如何读取文件并将所有整数存储在一个数组中,指定精度为整数,但不指定文件中的整数数?
在fread函数的Matlab文档中,数组的预期大小在精度之前:
A = fread(fileID,sizeA,precision)
那么如果你知道精度是多少但是大小未知 - 我想加载文件中的所有整数直到文件结束?
答案 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)
读取“无限”字样。样本数量(即文件末尾)。