资源描述:
《matlab文件io》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章文件I/O2006年10月5.1低级文件I/O文件可分为两类:(1)文本文件常见扩展名:.txt、.htm(2)二进制文件常见扩展名:.com、.exe、.bmp、.gif、.jpg、.wav、.au、.avi低级文件I/O指令:1.打开和关闭文件:fopen、fclose2.读写数据:fprintf、fscanf、fgetl、fgets、fread、fwrite3.文件定位和状态:feof、fseek、ftell、ferror、frewind5.1.1文件的打开与关闭1.fopenfid=fopen(filename,permis
2、sion)[fid,message]=fopen(filename,permssion)2.fclosestatus=fclose(fid)status=fclose('all')5.1.2数据的读写1.fscanf[A,count]=fscanf(fid,format,size)2.fprintfcount=fprintf(fid,format,A)例5.1计算当x=0:0.1:1时,y=exp(x)的值,并将结果写入文件myfile.txt中。3.fgetlline=fgetl(fid)4.fgetsline=fgets(fid)例5
3、.2编写一个程序用于读取myfile.txt中的数据。5.fread:[A,count]=fread(fid,size,precision)6.fwrite:count=fwrite(fid,A,precision)例5.3将5行5列“魔方阵”存入二进制文件中;再从二进制文件中读取“魔方阵”。5.1.3文件定位和文件状态1.feof函数:检测文件是否已经结束status=feof(fid)2.ferror函数:用于查询文件的输入、输出错误信息msg=ferror(fid)3.frewind函数:使位置指针重新返回文件的开头frewind(
4、fid)4.fseek函数:设置文件的位置指针status=fseek(fid,offset,origin)5.ftell函数:用于查询当前文件指针的位置position=ftell(fid)例5.4分析下列程序执行后,four、position和three3个变量的值。5.2高级文件I/O5.2.1MAT文件操作MAT文件是MATLAB独有的文件格式,是一种二进制格式文件,扩展名为.mat。1.save指令能够将当前工作空间中的变量保存到指定的数据文件中。基本语法为:savefilename将当前工作空间中所有变量保存到指定的文件中。s
5、avefilenamevar1var2…将当前工作空间中的变量var1,var2等保存到指定的文件中。2.load指令将数据文件的数据导入到MATLAB的工作空间。基本语法为:loadfilename将指定文件中所有的变量加载到当前工作空间。loadfilenamevar1var2…将指定文件中指定的变量加载到当前工作空间。例如5.5>>clearall>>x1=2;x2=3;x3=4;y1=0;>>savexdata>>dir*.mat>>clearall>>loadxdata>>whos5.2.2图像、声音、影片格式文件的操作1.im
6、read函数:从文件中读入图像A=imread(filename)2.image函数:显示图像image(A)3.imwrite函数:将图像写入文件imwrite(A,filename)4.imfinfo函数:查询图像文件信息info=imfinfo(filename)5.wavread函数:用于读取扩展名为.wav的声音文件y=wavread(filename)6.wavwrite函数:用于将数据写入到扩展名为.wav的声音文件中wavwrite(y,fs,nbits,wavefile)7.wavplay函数:利用windows音频输出
7、设备播放声音wavplay(y,fs)8.aviread函数:用于读取以.avi作为扩展名的影片格式的文件mov=aviread(filename)9.avifile函数:创建avi文件对象。aviobj=avifile(filename,‘fps’,value)%Example5.1x=0:0.1:1;y=exp(x);fid=fopen('myfile.txt','w');fprintf(fid,'%6.2f%12.8f',[x;y]);fclose(fid);typemyfile.txtfid=fopen('myfile.txt
8、','a');fprintf(fid,'%dt%dt%d',[1,2,3;4,5,6;7,8,9]);fclose(fid);typemyfile.txtfid=fopen('myfi