在MATLAB中读取二进制文件主要有以下两种方法,具体选择取决于文件格式和需求:
一、使用 `fread` 函数(推荐)
`fread` 是MATLAB中读取二进制文件的核心函数,支持按指定类型和大小读取数据。其基本语法如下:
```matlab
data = fread(fileID, size, precision, skip, machineformat);
```
参数说明:
`fileID`:通过 `fopen` 打开的文件标识符(如 `'rb'` 表示二进制只读);
`size`:读取元素个数(标量或向量),如 `[m, n]` 表示 `m*n` 个元素;
`precision`:数据类型(如 `'double'`、`'int16'` 等);
`skip`:跳过的字节数(如文件头信息);
`machineformat`:机器字长(如 `'little'` 或 `'big'`)。
示例:
```matlab
fileID = fopen('data.bin', 'rb');
data = fread(fileID, Inf, 'double'); % 读取所有双精度浮点数
fclose(fileID);
```
二、使用导入向导(便捷但需文件格式支持)
MATLAB提供导入向导(import Wizard),可自动识别二进制文件格式并导入数据,无需手动指定参数。操作步骤:
1. 选择 `File → import Data`;
2. 选择二进制文件并指定变量索引;
3. 完成导入后数据将存储为矩阵或结构体。
三、注意事项
文件打开模式:默认情况下,`fopen` 以二进制模式打开文件(`'rb'`),无需额外指定;
数据类型匹配:确保 `precision` 与文件实际数据类型一致,否则可能导致读取错误;
资源管理:使用完文件后需调用 `fclose` 关闭文件,避免资源泄漏。
以上方法适用于不同场景,推荐优先使用 `fread` 函数以获得更灵活的控制,若文件格式复杂且支持,导入向导可简化操作。