我无法读取非常大的二进制文件(1,000,000字节+)
如果fread
文件采用1字节数据格式,例如'uint8'
,则读取的数据量等于文件大小,因此内存不是问题。
我知道在这个二进制文件中有类型为'int16'
和'single'
的数据但是我不知道文件的结构。我认为文件是结构化的,因此有一个'int16'
数据点后面跟着一个'single'
数据点,这一过程一直重复到文件末尾。
我不知道如何读取混合数据类型。
我想我需要某种循环?
提前感谢您提出的任何帮助或建议
答案 0 :(得分:0)
使用skip属性可以在每个步骤中阅读single
和uint16
A = fread(fileID,sizeA,precision,skip)
未经测试的示例代码:
Integer16 = fread(fileID,sizeA,'uint16',8); %read uin16 and skip the siz eof a single
fseek(fileID, 2, 0) % offset the size of a uint16
Single = fread(fileID,sizeA,'single',2); % read the singles