第4章 文件操作_第1页
第4章 文件操作_第2页
第4章 文件操作_第3页
第4章 文件操作_第4页
第4章 文件操作_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 文件操作l掌握MATLAB文件处理方法主要内容l.1文件的类型文件的类型 l.2 文件的操作文件的操作.1文件l文件可分为两类:文件可分为两类: l文本文件 l由字符和与字符的显示格式有关的控制符构成l常见扩展名:“TXT” 、“BAT”、“HTM”l二进制文件 l 二进制文件为非文本文件l常见扩展名:“COM”、“EXE” 、“BMP” 、“WAV”4 4 数据的输入输出及文件的读写 4.1 4.1 交互输入与输出命令和函数交互输入与输出命令和函数1键盘输入命令键盘输入命令input格式一:格式一:u=input(提示内容提示内容)格式二:格式二: u=input(提示内容提示内容,

2、s)在屏幕上显示提示内容,等待从键盘输入,将输入的符号以字符串赋给文本(字符串)变量u。2显示命令显示命令 disp功能:显示指定的变量或变量的内容。调用格式:调用格式:disp(变量名变量名)3按格式要求输出变量命令按格式要求输出变量命令sprintf功能:按格式要求输出变量调用格式:调用格式:sprintf(显示格式显示格式,变量变量)。MATLAB中基本的文件I/O指令:l1打开和关闭文件打开和关闭文件lfopen、fclosel2格式读写格式读写lfprintf、fscanf、fgetl、fgetsl3非格式读写非格式读写lfread、fwritel4文件定位和状态文件定位和状态lfe

3、of、fseek、ftell、ferror、frewind4.1.1文件的打开与关闭文件的打开与关闭l1fopen函数函数l功能:打开文件或获得打开文件信息。l格式一:格式一:fid=fopen(文件名,文件名,允许模式允许模式)l fidfopen(filename,permission)以允许模式指定的模式打开“文件名”所指定的文件,返回文件标识fid;允许模式允许模式 可以是下列几个字符串之一:rr : 打开文件进行读(缺省型式);ww : 删除己存在文件中的内容或生成一个新文件,打开进行写操作; aa :打开一个己存在的文件或生成并打开一个新文件,进行写操作,在文件末尾添加数据;例:打

4、开一个名my.txt的数据文件并进行读操作,命令为: fidfopen(my.txt,r)l格式二:格式二:fid , message=fopen (文件名,文件名,允允许模式许模式,格式,格式) 功能:用指定的数据“格式”打开数据文件,返回文件标识和打开文件信息两个参数。“数据格式数据格式”。如果fopen成功打开文件,则返回文件标识f_id,message内容为空,如果不能成功打开,则返回f_id值为1,message中返回一个有助于判断错误类型的字符串。有三个值是预先定义的,不能打开或关闭: 0:表示标准输入,一直处于打开读入状态。 1:表示标准输出,一直处于打开追加状态。 2:表示标准

5、错误,一直处于打开追加状态。2fclose功能:关闭一个或多个已打开的文件。格式一:格式一:status=fclose(fid) 关闭指定文件,返回0表示成功,返回-1表示失败。格式二格式二status=fclose(all)功能: 关闭所有文件,返回0表示成功,返回-1表示失败。 .1.2格式化数据的读写格式化数据的读写fscanf格式一:格式一:A=fscanf (f_id, 格式格式)从由f_id所指定的文件中读入所有数据,并根据格式字符串进行转换,并返回给矩阵A,格式字符串指定被读入数据的格式。格式二:格式二:A, count=fscanf(f_id,格式格式,size)读入由size

6、指定数量的数据,并根据格式字符进行转换,并返回给矩阵A,同时返回成功读入的数据数量count。fprintf格式一:格式一:count=fprintf(f_id,格式格式,A,)将矩阵A或其它矩阵的实部数据以格式字符串指定的形式进行规格化,并将其写入指定的文件中,其返回值为写入数据的数量。格式二:格式二: fprintf(格式格式,A,) 将A或其它值以格式给定的形式输出到标准输出显示屏幕上。 例-1l计算当计算当x=0 1时时f(x)=exp的值,并将结果写入到文的值,并将结果写入到文件件my.txt中。中。l程序程序 x=0:0.1:1;l y=x;exp(x);%y有两行数据l fid=

7、fopen(E:my.txt,w);l fprintf(fid,%6.2f %12.8fn,y);%把y数据写入到fidl fclose(fid);例-2l从上例中生成的文件从上例中生成的文件my.txt中读取数据,并将结中读取数据,并将结果输出到屏幕。果输出到屏幕。l程序程序 fid = fopen(E:my.txt,r);a,count = fscanf(fid,%f %f,2 inf); fprintf(1,%f %fn,a); fclose(fid);l输出输出 同例同例4-1文件中的数据格式。文件中的数据格式。.1.3 文件定位和文件状态文件定位和文件状态l1feof函数:检测文件是

8、否已经结束函数:检测文件是否已经结束lstatus=feof(fid)l2ferror函数:用于查询文件的输入、输出错误信息函数:用于查询文件的输入、输出错误信息lmsg=ferror(fid)l3frewind函数:使位置指针重新返回文件的开头函数:使位置指针重新返回文件的开头lfrewind(fid) l4fseek函数:设置文件的位置指针函数:设置文件的位置指针lstatus=fseek(fid, offset, origin) l5ftell函数:用于查询当前文件指针的位置函数:用于查询当前文件指针的位置lposition=ftell(fid);例-3 输出文件的大小。程序程序 fid

9、=fopen(E:my.txt,r);fseek(fid,0,eof);x=ftell(fid);fprintf(1,File Size=%dn,x);frewind(fid);x=ftell(fid);fprintf(1,File Position =%dn,x);fclose(fid);输出输出 File Size = 231File Position = 0.1.4按行读取数据l1fgetl函数:按行从文件中读取数据,但不读函数:按行从文件中读取数据,但不读取换行符。取换行符。lline=fgetl(fid)l2fgets函数:用于从文件中读取行、保留换行函数:用于从文件中读取行、保留换

10、行符并把行作为字符串返回。符并把行作为字符串返回。l(1)line=fgets(fid) l(2)line=fgets(fid,nchar) 例-4编写一个程序,用于读取例编写一个程序,用于读取例4-1生成的数据。生成的数据。程序程序 lfid=fopen(E:my.txt,r);lwhile feof(fid)%在文件没有结束时按行读取数据在文件没有结束时按行读取数据l s=fgets(fid);l fprintf(1,%s,s);lendlfclose(fid);输出输出 同例同例4-1文件中的数据格式。文件中的数据格式。.1.5二进制数据文件的读写二进制数据文件的读写lfwrite函数:

11、用于向一个文件写入二进制数据函数:用于向一个文件写入二进制数据lcount=fwrite(fid, A, precision)。lfread函数:用于从文件中读二进制数据函数:用于从文件中读二进制数据lA,count=fread(fid, size, precision) l注意:注意:使用函数使用函数fread()和和fwrite()读写文件时读写文件时,必须以二必须以二进制方式打开文件进制方式打开文件例-5将将5行行5列列“魔方阵魔方阵”存入二进制文件中。存入二进制文件中。程序程序lfid=fopen(E:my1.dat,w);la=magic(5);lfwrite(fid,a,long)

12、;lfclose(fid);例-6从二进制文件中读取从二进制文件中读取“魔方阵魔方阵”。程序程序fid=fopen(E:my1.dat,r);A,count=fread(fid, 5, inf, long);fclose(fid);A.1.6 图像、声音文件的读写图像、声音文件的读写l1imread函数:从文件中读入图像函数:从文件中读入图像lA = imread(filename,fmt)lA, map = imread(filename,fmt)l2imshow函数:显示图像函数:显示图像 l (imview函数和函数和imtool函数函数)limshow(A) l3imwrite函数:将

13、图像写入文件函数:将图像写入文件limwrite(A, filename, fmt) limwrite(A, map, filename, fmt) 例-7读取并显示一幅图像。读取并显示一幅图像。程序程序x=imread(C:MATLAB7toolboxmatlabdemoslena.bmp);imshow(x);ly=imread(E:waterlena1.bmp);limshow(y).1.6图像、声音文件的读写图像、声音文件的读写l4imfinfo函数:查询图像文件信息函数:查询图像文件信息linnfo imfinfo(filename)l5wavread函数:用于读取扩展名为函数:用于

14、读取扩展名为“.wav”的声音文件的声音文件 ly=wavread(file) ly, fs, nbits=wavread(file) l6wavwrite函数:用于将数据写入到扩展名为函数:用于将数据写入到扩展名为“wav”的的 声音文件中声音文件中lwavwrite(y, fs, nbits, wavefile) l7wavplay函数:利用函数:利用windows音频输出设备播放声音音频输出设备播放声音lwavplay(y,fs)例4-9读取一个音频数据文件,以不同频率播放,并显示读取一个音频数据文件,以不同频率播放,并显示声音波形。声音波形。程序:程序:y=wavread(C:MATL

15、AB7toolboxsimulinksimdemossimgeneraltoilet.wav)plot(y);wavplay(y);wavplay(y,11025);wavplay(y,44100);l学好计算机的唯一途径是学好计算机的唯一途径是 l你的编程能力与你在计算机上投入的时间成你的编程能力与你在计算机上投入的时间成 结 束 语l实验实验5 文件操作文件操作 (2学时学时)l一、目的要求一、目的要求l1、熟练掌握工作区变量的文件操作、熟练掌握工作区变量的文件操作;l2、熟练掌握文本文件的读写操作、熟练掌握文本文件的读写操作; l3、熟练掌握格式化文本文件的输入输出语句的执行、熟练掌握格

16、式化文本文件的输入输出语句的执行l4、了解二进制问读写操作、了解二进制问读写操作l二、主要实验仪器及材料二、主要实验仪器及材料l微型计算机、微型计算机、Matlab7.0教学版。教学版。l3、掌握要点、掌握要点l掌握掌握Matlab文件及数据的读写存取等操作。文件及数据的读写存取等操作。l4、实验内容、实验内容l(1)、 对变量数据的读取、修改、保存及路径设置对程序的对变量数据的读取、修改、保存及路径设置对程序的影响;影响;l(2)、 在程序中实现数据的读取与存储;在程序中实现数据的读取与存储;l(3)、 对方法进行总结完成实验报告;对方法进行总结完成实验报告;编程实现:编程实现: 经过经过24小时观察三处地方车辆流量小时观察三处地方车辆流量的情况,并进行记录,的情况,并进行记录, 画出三个位画出三个位置的车流量图,并对数据进行分析。

温馨提示

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

评论

0/150

提交评论