补充学习2—Matlab文件操作_第1页
补充学习2—Matlab文件操作_第2页
补充学习2—Matlab文件操作_第3页
补充学习2—Matlab文件操作_第4页
补充学习2—Matlab文件操作_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学实验 Matlab 文件操作 数学实验数学实验 q 文件操作是一种重要的输入输出方式,文件操作是一种重要的输入输出方式,Matlab 提供了一系列输入输出函数,专门用于文件操作。提供了一系列输入输出函数,专门用于文件操作。 q Matlab文件操作主要有三个步骤:首先文件操作主要有三个步骤:首先打开打开文文 件,然后对文件进行件,然后对文件进行读写读写操作,最后要操作,最后要关闭关闭文件。文件。 q Matlab中的输入输出函数是以中的输入输出函数是以 C语言标准库函语言标准库函 数中的输入输出函数为基础开发的,所以这些函数数中的输入输出函数为基础开发的,所以这些函数 与与 C语言的输入输

2、出函数相类似。语言的输入输出函数相类似。 Matlab 文件操作介绍文件操作介绍 数学实验数学实验 l 常见的打开方式有:常见的打开方式有: fid=fopen(文件名,打开方式文件名,打开方式) r只读,文件必须存在(缺省的打开方式)只读,文件必须存在(缺省的打开方式) w 写文件,若文件已存在则原内容将被覆盖;若文写文件,若文件已存在则原内容将被覆盖;若文 件不存在则新建一个件不存在则新建一个 a在文件末尾添加,文件若不存在则新建一个在文件末尾添加,文件若不存在则新建一个 r+ 可读可写,文件必须存在可读可写,文件必须存在 w+ 可读可写,若文件已存在则原内容将被覆盖;若可读可写,若文件已

3、存在则原内容将被覆盖;若 文件不存在则新建一个文件不存在则新建一个 a+ 可读可写可添加,文件若不存在则新建一个可读可写可添加,文件若不存在则新建一个 文件的打开文件的打开 l 其中文件名用字符串形式表示(可以带路径名)其中文件名用字符串形式表示(可以带路径名) 数学实验数学实验 l fid 为文件句柄,其它函数可以用它对该文件进行操为文件句柄,其它函数可以用它对该文件进行操 作。如果句柄值大于作。如果句柄值大于 0,则表示文件打开成功;若打开,则表示文件打开成功;若打开 失败,失败,fid 的返回值为的返回值为 -1。 l 有两个标准代码文件,不需打开就可以直接使用,分有两个标准代码文件,不

4、需打开就可以直接使用,分 别为:别为:fid=1 标准输出文件,标准输出文件,fid=2 标准错误文件。标准错误文件。 文件的打开文件的打开 fid=fopen(output.txt,wt+); fprintf(fid,Hello world!n); fclose(fid); fprintf(1,Hello world!n); fprintf(2,Hello world!n); 数学实验数学实验 l 文件有两种格式:文件有两种格式:二进制二进制文件文件(b)和和文本文本文件文件(t)。 在在Windows下,打开文件的默认是二进制格式,如果下,打开文件的默认是二进制格式,如果 要以文本方式打开

5、,则必须在打方式中加上字符要以文本方式打开,则必须在打方式中加上字符 t。 l 若不指定打开方式,则表示只读。若不指定打开方式,则表示只读。 文件的打开文件的打开 fid=fopen(output.txt,wt+); 数学实验数学实验 l 其中其中 fid 为所要关闭的文件的句柄,为所要关闭的文件的句柄,status 为关为关 闭文件的返回代码,若关闭成功则为闭文件的返回代码,若关闭成功则为 0,否则为,否则为 -1。 status=fclose(fid); 文件的关闭文件的关闭 数学实验数学实验 l A 用来存放读取的数据用来存放读取的数据 l count 返回读取数据的个数,为可选项返回读

6、取数据的个数,为可选项 l fid 为文件句柄为文件句柄 l size 为可选项,缺省为读取整个文件,为可选项,缺省为读取整个文件, 若给出,则取值可以是:若给出,则取值可以是: A,count=fscanf(fid,format,size) 文本文件的读取文本文件的读取 N读取读取 N 个数据到一个列向量个数据到一个列向量 Inf读取整个文件读取整个文件 m,n 读取读取 m n 个数据到一个个数据到一个 m n 矩阵中,按列矩阵中,按列 存放存放 数学实验数学实验 c字符型字符型g浮点数(自动)浮点数(自动) d十进制整数十进制整数o八进制八进制 e浮点数(科学计数法)浮点数(科学计数法)

7、s字符串字符串 f浮点数(小数形式)浮点数(小数形式)x十六进制十六进制 文本文件的读取文本文件的读取 l format 用来控制读取的数据格式,由用来控制读取的数据格式,由 % 加上加上 格式符组成,下表中是常见的格式符,在格式符组成,下表中是常见的格式符,在 % 之后之后 可以加上数据宽度,如可以加上数据宽度,如 %12d 数学实验数学实验 u 将将输出变量输出变量按指定的格式写入文件中按指定的格式写入文件中 u 若省略若省略 fid,则表示在屏幕上输出则表示在屏幕上输出 u count 返回所写入的数据元素个数(可省)返回所写入的数据元素个数(可省) u format 以以 % 开头,通

8、常由以下几个部分组成:开头,通常由以下几个部分组成: count=fprintf(fid,format,输出变量列表输出变量列表) n flags (optional) n Width and precision fields (optional) n Conversion character (required) 文本文件的写入文本文件的写入 数学实验数学实验fprintf 举例举例 fprintf(a= %-12.5f n,123.456) format 以以 % 开头开头 flag field width precision 格式说明符格式说明符 - :左对齐左对齐 + :输出符号输出符

9、号 0 :空白处添空白处添 0 空格空格:前面加一空格前面加一空格 字段宽度字段宽度 小数点后小数点后 输出位数输出位数 数学实验数学实验文本文件的写入文本文件的写入 l fprintf 命令的格式说明符命令的格式说明符 c字符型字符型g浮点数(自动)浮点数(自动) d十进制整数十进制整数o八进制八进制 e浮点数(科学计数法)浮点数(科学计数法)s字符串字符串 f浮点数(小数形式)浮点数(小数形式)x/X十六进制十六进制 l format 中还可以使用的特殊字符中还可以使用的特殊字符 b退后一格退后一格t水平制表符水平制表符 f换页换页反斜杠反斜杠 n换行换行单引号单引号 r回车回车%百分号百

10、分号 数学实验数学实验 x=0:0.1:1; y=x;exp(x); fid=fopen(output.dat,wt); fprintf(fid, x exp(x)n); fprintf(fid,%6.2f %12.8fn,y); status=fclose(fid); 例:例: 文本文件的写入举例文本文件的写入举例 数学实验数学实验 A,count=fread(fid,size,precision) N读取读取 N 个数据到一个列向量个数据到一个列向量 Inf读取整个文件读取整个文件 m,n 读取读取 m n 个数据到一个个数据到一个 m n 矩阵中,按列矩阵中,按列 存放存放 二进制文件的

11、读写二进制文件的读写 l A 用来存放读取的数据用来存放读取的数据 l count 返回读取数据的个数,可选项返回读取数据的个数,可选项 l fid 为文件句柄为文件句柄 l size 为可选项,缺省为读取整个文件,为可选项,缺省为读取整个文件, 若给出,则取值可以是:若给出,则取值可以是: 数学实验数学实验 u precision 代表代表读取读取的数据的类型,的数据的类型, 缺省为缺省为 uchar uchar 无符号字符无符号字符 uint1616位无符号整数位无符号整数 schar 带符号字符带符号字符 uint3232位无符号整数位无符号整数 int88位带符号整数位带符号整数uin

12、t6464位无符号整数位无符号整数 int16 16位带符号整数位带符号整数float3232位浮点数位浮点数 int32 32位带符号整数位带符号整数float6464位浮点数位浮点数 int64 64位带符号整数位带符号整数double64位双精度数位双精度数 uint8 8位无符号整数位无符号整数 二进制文件的读取二进制文件的读取 数学实验数学实验 char带符号字符带符号字符 short16位带符号整数位带符号整数 int32位带符号整数位带符号整数 long32或或64位带符号整数位带符号整数 ushort 16位无符号整数位无符号整数 uint32位无符号整数位无符号整数 ulon

13、g32或或64位无符号整数位无符号整数 float32位浮点数位浮点数 u 以下数据类型与使用的平台有关:以下数据类型与使用的平台有关: 二进制文件的读取二进制文件的读取 数学实验数学实验 fid=fopen(output.dat,r); A=fread(fid,100,double); status=fclose(fid); fid=fopen(output.dat,r); A,count=fread(fid,100,100,double); status=fclose(fid); 例:例: 二进制文件读写举例二进制文件读写举例 数学实验数学实验 u 按指定的数据类型将矩阵按指定的数据类型将

14、矩阵 A 中的元素写入到文件中。中的元素写入到文件中。 其中其中 count 返回所写入的数据元素个数(可省)。返回所写入的数据元素个数(可省)。 count=fwrite(fid,A,precision) A=magic(5); fid=fopen(magic5.dat,w); fwrite(fid,A,int8); fclose(fid); fid=fopen(magic5.dat,r); B,count=fread(fid,5,inf,int8); fclose(fid); 二进制文件的写入二进制文件的写入 例:例: 数学实验数学实验 q 打开文件读写数据时,需要判断和控制文件的打开文件

15、读写数据时,需要判断和控制文件的 读写位置读写位置,如数据是否读完,或者需要读写指定,如数据是否读完,或者需要读写指定 位置上的数据等。位置上的数据等。 q 在读写文件时,在读写文件时,Matlab 自动创建一个文件位置自动创建一个文件位置 指针来管理和维护文件读写数据的起始位置。指针来管理和维护文件读写数据的起始位置。 q Matlab 提供了几个文件位置指针定位操作函数:提供了几个文件位置指针定位操作函数: fseek、ftell 、 frewind 和和 feof 读写的定位读写的定位 数学实验数学实验 status=fseek(fid,offset,origin) u fid 为文件句柄为文件句柄 u offset 表示位置指针相对偏移的字节数,若为正表示表示位置指针相对偏移的字节数,若为正表示 向文件尾方偏移,若为负表示向文件头方向偏移向文件尾方偏移,若为负表示向文件头方向偏移 fseek n cof 表示当前位置,表示当前位置, n bof 表示文件的开始位置,表示文件的开始位置, n eof 表示文件末尾;表示文件末尾; u 若定位成功,若定位成功,status 返回值为返回值为 0,否则返回,否则返回 -1 u origin 表示位置指针移动的参照位置,有三种取值:表示位置指针移动的参照位置,有三种取值:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论