MATLAB 数据导入完全指南:importdata 与低级文件 I/O
数据导入即从外部文件加载数据。importdata 是高级函数,支持多种格式,提供 5 种调用形式:
| 序号 | 语法与说明 |
|---|---|
| 1 | A = importdata(filename) 从文件加载到数组 A |
| 2 | A = importdata('-pastespecial') 从剪贴板加载 |
| 3 | A = importdata(___, delimiterIn) 指定 ASCII 文件列分隔符 |
| 4 | A = importdata(___, delimiterIn, headerlinesIn) 跳过表头行 |
| 5 | [A, delimiterOut, headerlinesOut] = importdata(___) 返回检测到的分隔符与表头行数 |
示例 1:加载图像
filename = 'smile.jpg'; A = importdata(filename); image(A);
示例 2:带表头的文本文件
文件 weeklydata.txt(空格分隔,首行表头)。
filename = 'weeklydata.txt';
delimiterIn = ' '; headerlinesIn = 1;
A = importdata(filename, delimiterIn, headerlinesIn);
for k = 1:7
disp(A.colheaders{1,k})
disp(A.data(:,k))
disp(' ')
end
输出各列表头与数据。
示例 3:从剪贴板导入
A = importdata('-pastespecial')
% 复制 "Mathematics is simple" 到剪贴板后运行
A = 'Mathematics is simple'
低级文件 I/O
提供字节/字符级完全控制,需更多文件细节。核心函数:
| 函数 | 说明 |
|---|---|
| fclose | 关闭文件 |
| feof | 测试文件结束 |
| ferror | 文件 I/O 错误信息 |
| fgetl | 读行(去换行符) |
| fgets | 读行(保留换行符) |
| fopen | 打开文件/获取文件标识符 |
| fprintf | 写文本文件 |
| fread | 读二进制文件 |
| frewind | 文件指针回首 |
| fscanf | 读文本文件(格式化) |
| fseek | 移动文件指针 |
| ftell | 获取文件指针位置 |
| fwrite | 写二进制文件 |
低级导入文本数据
主要函数:fscanf(格式化读)、fgetl/fgets(逐行读)、fread(字节流读)。
实战:读取降雨数据文件
文件 myfile.txt 包含 3 个月份数据,每月 7 行 5 列。步骤:
- fopen 获取文件标识符 fid
- 用格式说明符描述数据(%s 字符串、%d 整数、%f 浮点、* 跳过)
- 循环读取 3 组数据,存入结构体 mydata(字段:time、month、raindata)
- fclose 关闭文件
filename = '/data/myfile.txt'; rows=7; cols=5;
fid = fopen(filename);
M = fscanf(fid, '%*s %*s\n%*s %*s %*s %*s\nM=%d\n\n', 1);
for n = 1:M
mydata(n).time = fscanf(fid, '%s', 1);
mydata(n).month = fscanf(fid, '%s', 1);
mydata(n).raindata = fscanf(fid, '%f', [rows, cols])';
end
for n = 1:M
disp(mydata(n).time), disp(mydata(n).month)
disp(mydata(n).raindata)
end
fclose(fid);
输出显示各时段、月份及 7×5 雨量矩阵(含 NaN)。
MATLAB
- Azure 文件存储详解:安全可扩展云存储入门指南
- MATLAB 入门指南:矩阵实验室的核心能力与应用领域全景
- MATLAB 变量深度解析:矩阵本质、赋值、多重赋值、查看与清理、长赋值、格式控制、向量创建
- MATLAB 常用命令速查:会话管理、系统操作、输入输出、矩阵数组、绘图可视化
- MATLAB 数据类型完全指南:15 种基本类型、转换函数与类型判断函数速查表
- MATLAB 运算符大全:矩阵/数组算术、关系、逻辑、位运算、集合运算详解
- MATLAB 矩阵核心操作:创建、索引引用、子矩阵提取、行列删除、拼接与基本运算
- MATLAB 多维数组与特殊数组完全指南
- MATLAB 冒号运算符详解:向量创建与高效迭代
- MATLAB 数值类型详解:存储、转换与范围查询
- MATLAB 字符串完全指南:创建、拼接、元胞数组与常用函数
- MATLAB 函数详解:定义、工作区、输入输出与多种函数类型