MATLAB 编程过程中会产生很多数据,暂时储存在 Matlab 的右侧工作区中,这些数据可以复制、剪切,也可以保存在 mat 文件、dat 文件、txt 文件或 Excel 文件中。
在编程过程中,要养成保存数据 (有用的数据) 的习惯,特别是非常运行时间比较长的程序。做完图就把数据丢了的做法是非常不明智的。
mat 文件
储存数据
- 点击菜单
保存工作区(Save Workspace) 就可以把工作区的所有数据保存到一个 mat 文件; - 命令行输入
save data或save data.mat把工作区所有数据保存到data.mat文件; - 命令行输入
save data A或save data.mat A把工作区中 A 矩阵保存到data.mat文件。
1 | clear; a = magic(4); |
加载数据
- 双击 mat 文件即可加载其中的数据;
- 命令行输入
load('data.mat')或load('data.mat','A')可以加载data.mat中的数据。
1 | load('data1.mat') |
dat 文件保存与 mat 类似,保存或加载是必须加后缀 .dat,比如 data.dat.
Excel 文件
从 Excel 文件读取数据

1 | >> Score = xlsread('Score.xlsx') |
1 | Score = xlsread('Score.xlsx', 'B2:D4') |
Excel 文件数据写入
1 | M = mean(Score')'; |

示例:
1 | % 建立Excel并输入数据 |
文件输入与输出
fopen 函数
fopen函数用来打开文件以供读取,其调用格式
1 | fid = fopen (filename, permission) |
permission:
'r' 打开要读取的文件。'w' 打开或创建要写入的新文件。放弃现有内容(如果有)。'a' 打开或创建要写入的新文件。追加数据到文件末尾。'r+' 打开要读写的文件。'w+' 打开或创建要读写的新文件。放弃现有内容(如果有)。'a+'打开或创建要读写的新文件。追加数据到文件末尾。
fclose 函数
fclose函数用于关闭已打开的文件,其调用格式
1 | status = fclose(fid) |
1 | x = 0:pi/10:pi; |
输出
1 | >> text01 |
fscanf 函数
1 | A = fscanf(fid, format, sizeA); |
将文件数据读取到维度为 sizeA 的数组 A 中,并将文件指针定位到最后读取的值之后。fscanf 按列顺序填充 A。sizeA 必须为正整数或采用 [m n] 的形式,其中 m 和 n 为正整数。
fprintf 函数
1 | fprintf(fid, format, x, y,...); |
按列顺序将 format 应用于数组 x, y ,... 的所有元素,并将数据写入到一个文本文件。fprintf 使用在对 fopen 的调用中指定的编码方案。
asciiData.txt
1 | John 1995 12 5 12.3 3.24 |
1 | fid = fopen('asciiData.txt','r'); |
txt 文件实用示例
例子 1
1 | clear all |
输出
demo.txt
1 |
|
例子 2
1 | clear all |
输出
Result.txt
1 | --- Numerical Results of Model Equation --- |
参考资料
- MATLAB教程_台大郭彦甫
- MATLAB 基础与应用教程