第六章 文件操作
这一章的内容是关于文件的操作、数据的存储,我们会涉及的内容有:
- 文件数据的存储;
- 数据导入
- 文件的打开
- 文本文件的读写
- 低层文件的I/O操作
- EXCEL的文件操作
今天的自学笔记可能会略长
一、文件、数据的存储
1.保存整个工作区
如果想长久保存MATLAB工作区(workspace)的数据,我们要生成.MAT数据文件:
方法:
- 点击“File”菜单中的“Save Workspace As…”
- 点击工作区浏览器工具栏中的“Save”按钮
2.保存工作区中的变量
- 工作区浏览器中,右键单击需要保存的变量名,选择“Save As…”菜单项,将该变量保存为MAT文件
3.使用save 命令保存
- save filename…
- 保存整个工作区到制定的filename文件中
- 如果不指定扩展名,则默认为.MAT文件
- 如果不指定文件名,则默认为:“matlab.mat”
- MAT文件可以通过**load()**函数再次导入工作区
save data a b;
load data
- save filename x-ascii
- MAT文件是标准的二进制文件:以二进制的方式存储变量,通常file会比较小,而且载入时速度较快,但是无法用普通的文本软件看到内容;
- 使用save filename x-ascii可以将变量x以八位数存到filename的ASCII档案
save data a b -ascii
load data a b -ascii
在save命令使用-ascii选项后,会有以下现象:
1) 对于相同的变量,ASCII档案通常较大
2)save命令不会在档案后加 .mat 的扩展名——以**.mat** 结尾的档案通常是MATLAB的二进制资料。
3)通常只存储一个变量,若在save后加入多个变量,仍可执行,但产生的档案无法简单的load:
4)原有的变量名称消失。因此在将档案以load载入时,会取用档案名称为变量名称;
5)对于复数,只能储存其实部,而虚部则会消失;
6)为了有较好的兼容性,我们一般应该使用ascii方式存储资料。
-
save(‘filename’)
1)将工作区中的所有变量保存为MAT文件
2)文件名由filename制定
3)如果filename中包含路径,则文件保存在相应目录下,否则默认为当前路径 -
save(‘filename’, ‘var1’, ‘var2’, …):
保存指定的变量 -
save(‘filename’ , ‘struct’ , ‘s’):
保存结构体s中的全部域作为单独的变量 -
save(‘filename’ , ‘struct’ , ‘s’ , ‘f1’ , ‘f2’,…):
保存结构体s中的指定变量
定义一个结构体:
s.a = 10; s.b = 1;
- save(’-regexp’ , expr1 , expr2):
通过正则表达式*指定待保存的变量所满足的条件
正则表达式: a*代表以a开头的所有变量
- save(’…’ , ‘format’):
指定保存文件的格式: MAT/ASCII/…
二、数据导入
1.load( )
在MATLAB中,导入数据通常由load()实现
该函数的用法如下:
-
load:
a. "matlab.mat"文件存在:导入其中的所有变量
b.“matlab.mat”不存在:返回error -
load filename:
将filename中的所有变量导入到工作区 -
load filename X Y Z…:
将filename中的变量X,Y,Z等导入到工作区中
如果 文件为MAT文件: 指定变量是可以使用通配符 ‘ * ’ -
load filename -regexp expr1 expr2…:
通过正则表达式指定需要导入的变量 -
load-ascii filename:
无论输入文件名是否包含有扩展名,将其以ASCII格式导入,如果指定的文件不是数字文本,则返回error。 -
load-mat filename:
无论输入文件名是否包含有扩展名,将其以