资源描述:
《matlab 教学教案第七讲 文件IO.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章文件I/O8.1高级例程1.MAT数据文件操作2.数据导入导出1.MAT数据文件操作二进制格式文件,利用save和load命令进行保存或导入到工作空间中>>save>>save(‘filename’,var1,var2,var3)>>load>>load(‘filename’,var1,var2,var3)2.数据导入导出函数名功能描述dlmread把ASCII码中的数据输入矩阵dlmwrite把矩阵写入ASCII文件textread把文件读入格式化的文本wklread从电子表格文件读入wk
2、lwrite写入电子表格文件xlsread从excel表格文件读入aviread从电影文件读入auread从声音文件读入auwrite写入声音文件8.2节低级例程1文件的打开与关闭2文件的读写操作3数据文件定位文件操作是一种重要的输入输出方式,Matlab提供了一系列输入输出函数,专门用于文件操作。Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件。Matlab中的输入输出函数是以C语言标准库函数中的输入输出函数为基础开发的,所以这些函数与C语言的输入输出函数
3、相类似。Matlab文件操作介绍fopen打开文件fclose关闭文件fread读取一个二进制文件的全部或者部分fwrite将数组写入二进制文件fscanf从文件中读取格式化数据fprintf将格式化数据写入文件fgetl从文件中读取行,并删除换行符fgets从文件中读取行,并保留换行符spritf将格式化数据写入字符串scanf在格式控制下读取字符串常用的文件I/O函数常见的打开方式有:fid=fopen(文件名,打开方式)'r'只读,文件必须存在(缺省的打开方式)'w'写文件,若文件已存在则原
4、内容将被覆盖;若文件不存在则新建一个'a'在文件末尾添加,文件若不存在则新建一个'r+'可读可写,文件必须存在'w+'可读可写,若文件已存在则原内容将被覆盖;若文件不存在则新建一个'a+'可读可写可添加,文件若不存在则新建一个文件的打开其中文件名用字符串形式表示(可以带路径名)fid为文件句柄,其它函数可以用它对该文件进行操作。如果句柄值大于0,则表示文件打开成功;若打开失败,fid的返回值为-1。文件的打开文件有两种格式:二进制文件(b)和文本文件(t)。在Windows下,打开文件的默认是二进
5、制格式,如果要以文本方式打开,则必须在打开方式中加上字符't'。若不指定打开方式,则表示只读。文件的打开fid=fopen('output.txt','wt+');其中fid为所要关闭的文件的句柄,status为关闭文件的返回代码,若关闭成功则为0,否则为-1。status=fclose(fid);文件的关闭fid=fopen(‘output.txt’,‘w+’);fprintf(fid,'Helloworld!');fclose(fid);myopen.mA用来存放读取的数据count返回读取数
6、据的个数,为可选项fid为文件句柄size为可选项,缺省为读取整个文件,若给出,则取值可以是:[A,count]=fscanf(fid,format,size)文本文件的读取N读取N个数据到一个列向量Inf读取整个文件[m,n]读取mn个数据到一个mn矩阵中,按列存放c字符型g浮点数(自动)d十进制整数o八进制e浮点数(科学计数法)s字符串f浮点数(小数形式)x十六进制文本文件的读取format用来控制读取的数据格式,由%加上格式符组成,下表中是常见的格式符,在%之后可以加上数据宽度,如%1
7、2d将输出变量按指定的格式写入文件中若省略fid,则表示在屏幕上输出count返回所写入的数据元素个数(可省)format以%开头,通常由以下几个部分组成:count=fprintf(fid,format,输出变量列表)文本文件的写入fprintf举例fprintf('a=%-12.5f',123.456)format以%开头flagfieldwidthprecision格式说明符-:左对齐+:输出符号0:空白处添0空格:前面加一空格字段宽度小数点后输出位数a=123.45600文本文件的写
8、入fprintf命令的格式说明符c字符型g浮点数(自动)d十进制整数o八进制e浮点数(科学计数法)s字符串f浮点数(小数形式)x/X十六进制format中还可以使用的特殊字符b退后一格t水平制表符f换页\反斜杠换行''单引号r回车%%百分号x=0:0.1:1;y=[x;exp(x)];fid=fopen('output.dat','wt');fprintf(fid,'xexp(x)');fprintf(fid,'%6.2f%12.8f',y);status=f