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 基础与应用教程