MATLAB读取混合数据类型二进制文件

时间:2015-09-08 12:22:56

标签: matlab types binaryfiles binary-data

我无法读取非常大的二进制文件(1,000,000字节+)

如果fread文件采用1字节数据格式,例如'uint8',则读取的数据量等于文件大小,因此内存不是问题。

我知道在这个二进制文件中有类型为'int16''single'的数据但是我不知道文件的结构。我认为文件是结构化的,因此有一个'int16'数据点后面跟着一个'single'数据点,这一过程一直重复到文件末尾。

我不知道如何读取混合数据类型。

我想我需要某种循环?

提前感谢您提出的任何帮助或建议

1 个答案:

答案 0 :(得分:0)

使用skip属性可以在每个步骤中阅读singleuint16

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