文档详情

Matlab教程Ch8(全)ppt课件.ppt

发布:2017-05-27约5.95千字共36页下载文档
文本预览下载声明
第8章 高级编程技术 本章目标 掌握MATLAB文件处理方法 理解MATLAB应用程序接口的原理 了解结构和元胞这两种复杂数据类型 了解面向对象编程的基本概念 主要内容 8.1文件 8.2 应用程序接口 8.1文件 文件可分为两类: 文本文件 由字符和与字符的显示格式有关的控制符构成 常见扩展名:“TXT” 、“BAT”、“HTM” 二进制文件 二进制文件为非文本文件 常见扩展名:“COM”、“EXE” 、“BMP” 、“WAV” MATLAB中基本的低级文件I/O指令: 1.打开和关闭文件 fopen、fclose 2.格式读写 fprintf、fscanf、fgetl、fgets 3.非格式读写 fread、fwrite 4.文件定位和状态 feof、fseek、ftell、ferror、frewind 8.1.1文件的打开与关闭 1.fopen函数 fid=fopen(filename,permission) [fid,message]=fopen(filename,permssion) [filename,permission,machineformat]=fopen(fid) fid =fopen(all) 2.fclose函数 status=fclose(fid) status=fclose(all) 例:打开一个名为std.dat的数据文件并进行读操作,命令为: fid=fopen(my.txt,r) 8.1.2格式化数据的读写 fprintf函数 count=fprintf(fid,format , A ...) fscanf函数 [A, count]=fscanf(fid, format, size) 例8-1 计算当x=[0 1]时f(x)=ex的值,并将结果写入到文件my.txt中。 程序 x=0:0.1:1; y=[x;exp(x)]; %y有两行数据 fid=fopen(my.txt,w); fprintf(fid,%6.2f %12.8f\n,y); fclose(fid); 例8-2 从上例中生成的文件my.txt中读取数据,并将结果输出到屏幕。 程序 fid = fopen(my.txt,r); [a,count] = fscanf(fid,%f %f,[2 inf]); fprintf(1,%f %f\n,a); fclose(fid); 输出 同例8-1文件中的数据格式。 8.1.3 文件定位和文件状态 1.feof函数:检测文件是否已经结束 status=feof(fid) 2.ferror函数:用于查询文件的输入、输出错误信息 msg=ferror(fid) 3.frewind函数:使位置指针重新返回文件的开头 frewind(fid) 4.fseek函数:设置文件的位置指针 status=fseek(fid, offset, origin) 5.ftell函数:用于查询当前文件指针的位置 position=ftell(fid); 例8-3 输出文件的大小。 程序 fid=fopen(my.txt,r); fseek(fid,0,eof); x=ftell(fid); fprintf(1,File Size=%d\n,x); frewind(fid); x=ftell(fid); fprintf(1,File Position =%d\n,x); fclose(fid); 8.1.4按行读取数据 1.fgetl函数:按行从文件中读取数据,但不读取换行符。 line=fgetl(fid) 2.fgets函数:用于从文件中读取行、保留换行符并把行作为字符串返回。 (1)line=fgets(fid) (2)line=fgets(fid,nchar) 例8-4 编写一个程序,用于读取例8-1生成的数据。 程序 fid=fopen(my.txt,r); while ~feof(fid)%在文件没有结束时按行读取数据 s=fgets(fid); fprintf(1,%s,s); end fclose(fid); 输出 同例8-1文件中的数据格式。 8.1.5二进制数据文件的读写 fwrite函数:用于向一个文件写入二进制数据 count=fwrite(fid, A, precision)。 fread函数:用于从文件中读二进制数据 [A,count]=fread(fid, size, precision) 注意:使用函数fread()和fwrite()读写文件时,必须以二进制方式打开文件 例8-5 将5行5列“魔方阵”存入二进制文件中。 程序 fid=fopen(my.dat,w); a=m
显示全部
相似文档