




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/2/3机械工业出版社Page1第4章MATLAB数据文件I/O【学习目标】了解导入向导的使用熟悉MATLAB文件的基本操作掌握MAT文件、二进制文件、文本文件、音/视频文件的读写2023/2/3机械工业出版社Page2导入向导的使用4.1文件的基本操作4.2读写MAT文件4.3读写二进制文件4.4第4章MATLAB数据文件I/O读写文本文件4.5操作音频/视频文件4.62023/2/3机械工业出版社Page34.1导入向导的使用打开导入向导方式:执行【File】菜单下的【ImportData】命令;在MATLAB命令行中,键入指令uiimport;执行【Start】菜单下子菜单下的【ImportWizard】命令2023/2/3机械工业出版社Page44.1导入向导的使用2023/2/3机械工业出版社Page54.1导入向导的使用2023/2/3机械工业出版社Page64.1导入向导的使用2023/2/3机械工业出版社Page74.2文件的基本操作4.2.1文件的打开与关闭4.2.2文件的位置控制2023/2/3机械工业出版社Page81.文件的打开与关闭fopen函数的语法形式如下:fileID=fopen(filename)fileID=fopen(filename,permission)fileID=fopen(filename,permission,machineformat)fileID=fopen(filename,permission,machineformat,encoding)[fileID,message]=fopen(filename,...)2023/2/3机械工业出版社Page91.文件的打开与关闭函数各参数含义如下:filename:要打开的文件的名称;permission:指定打开文件的模式,MATLAB中文件打开模式如表4-1所示;machineformat:指定文件中数据的数字格式;encoding:指定文件中数据的编码方式;fileID:返回文件标识;message:返回打开文件的消息。2023/2/3机械工业出版社Page101.文件的打开与关闭permission说明r以只读方式打开文件,该文件必须已存在r+以读写方式打开文件,该文件必须已存在w以只写方式打开文件。该文件已存在则更新,不存在则创建新文件w+以读写方式打开文件。该文件已存在则更新;不存在则创建新文件a以只写文件方式打开,把写入的内容增加到文件的结尾,文件不存在则创建新文件a+以读写方式打开文件,把写入的内容增加到文件的结尾,若文件不存在则创建新的文件W不进行自动洗带的写入数据(针对于磁带机的特殊命令)A不进行自动洗带的添加数据(针对于磁带机的特殊命令)2023/2/3机械工业出版社Page111.文件的打开与关闭fclose语法形式如下:status=fclose(fileID)status=fclose('all')fileID:该参数为fopen函数返回的文件标识;status:该参数为操作返回的结果。如果操作成功,则返回0,否则返回-1;fclose('all')表示关闭所有已经打开的文件。2023/2/3机械工业出版社Page122.文件的位置控制函数名称说明fseek设定指针在文件中的位置ftell获得指针在文件中的位置frewind重设指针到文件起始的位置feof判断指针是否在文件结束位置2023/2/3机械工业出版社Page132.文件的位置控制函数fseek常用的语法形式如下:fseek(fileID,offset,origin)status=fseek(fileID,offset,origin)函数各参数含义如下:fileID:该参数为fopen函数返回的文件指针;offset:该参数为整数型变量,表示相对于指定位置需要的偏移字节数,正数表示向文件末尾偏移,负数表示向文件开头偏移,0表示没有相对偏移;origin:该参数可以是特定字符串,也可以是整数,表示指针在文件中的起始位置。status:函数返回的状态,0表示操作成功,-1表示操作失败。2023/2/3机械工业出版社Page142.文件的位置控制
函数ftell用来获得当前文件指针的位置,其具体的调用格式为:
position=ftell(fileID)position为返回值,表示当前文件指针的位置。position是以相对于文件开头的字节数来表示的。如果返回值为-1,表示调用失败。
函数frewind用于把文件指针重新设置到文件开头,其语法形式如下:
frewind(fileID)函数feof用来判断是否到达文件末尾,其语法形式如下:
status=feof(fileID)status为返回值,当到达文件末尾时,status为1;否则为0。2023/2/3机械工业出版社Page152.文件的位置控制【例4-3】文件内位置控制函数使用示例。%example4_3.m%clc;clearall;closeall;x=1:10filename='mydata.dat';fid=fopen(filename,'wb');%打开文件fwrite(fid,x,'int16'); %写入数据fclose(fid); %关闭文件fid=fopen(filename,'rb');fseek(fid,5*2,'bof');%设定指针在文件中的位置y=fread(fid,2,'int16'); %读取文件2023/2/3机械工业出版社Page162.文件的位置控制y=y.'pos=ftell(fid)/2%获得当前文件指针的位置frewind(fid); %把文件指针重新设置到文件开头z=fread(fid,10,'int16');%判断是否到达文件末尾z=z.'status=feof(fid)2023/2/3机械工业出版社Page174.3读写MAT文件4.3.1MAT文件的写入4.3.2MAT文件的读取2023/2/3机械工业出版社Page18 mat文件是MATLAB专用的数据文件格式,以双精度二进制格式保存数据。它由128字节的mat文件头和其后的数据单元组成,文件头包括MATLAB的版本号、数据和文件被创建的时间等信息。4.3读写MAT文件2023/2/3机械工业出版社Page19 MATLAB中使用save函数可以将工作区中的数据保存为mat文件: savefilename[listofvariable][options]1.MAT文件的写入2023/2/3机械工业出版社Page201.MAT文件的写入【例4-4】save函数使用示例。%example4_4.m%clc;clearall;closeall;x1=20;x2=30;x3=40;y1=0;%创建变量savexdatax1x2%将x1,x2保存到文件xdata中, %数据类型默认为mat数据格式savexdata2.datx1x2–ascii%将x1,x2以ascii格式保 %存到文件xdata2.dat中2023/2/3机械工业出版社Page21 MATLAB中使用load函数把磁盘中的mat文件数据读入到工作区中: loadfilename[option]2.MAT文件的读取2023/2/3机械工业出版社Page221.MAT文件的写入【例4-5】load函数使用示例。将上例中两个数据文件加载到MATLAB工作区中。>>loadxdata>>whosNameSizeBytesClassAttributesx11x18doublex21x18double>>loadxdata2.dat>>whosNameSizeBytesClassAttributesx11x18double2023/2/3机械工业出版社Page234.4读写二进制文件4.4.1二进制文件的写入4.4.2二进制文件的读取2023/2/3机械工业出版社Page241.二进制文件的写入
函数fwrite以自定义格式把二进制数据写入文件。函数的语法形式如下:fwrite(fileID,A)fwrite(fileID,A,precision)fwrite(fileID,A,precision,skip)count=fwrite(...)函数各参数含义如下:fileID:fopen函数返回的文件标识;A:需要写入的数字或字符数组;skip:指定在每一次写入输出文件之前要跳过的字节数,如果数据类型为'bitn'或'ubitn',则skip以比特为单位;count:返回写入文件变量的数目。2023/2/3机械工业出版社Page251.二进制文件的写入precision:该参数表示按指定的数据类型写入,MATLAB支持的数据类型如表所示数据类型标识符说明数据类型标识符说明'char*1'8位字符'uint16'16位无符号整数'schar'8位有符号字符'uint32'32位无符号整数'uchar'8位无符号字符'uint64'64位无符号整数'int8'8位整数'float32'32位浮点数'int16'16位整数'float64'64位浮点数'int32'32位整数'bitn'n位带符号整数(1≤n≤64)'int64'64位整数'ubitn'n位无符号整数(1≤n≤64)'uint8'8位无符号整数2023/2/3机械工业出版社Page261.二进制文件的写入【例4-6】二进制文件写入示例:产生一个正弦信号,以二进制方式将信号写入文件中。filename='mywritedata.dat';x=1:500;y=100*sin(2*pi*0.02*x);
%产生正弦信号[fid,msg]=fopen(filename,'w');%以写方式打开文件iffid>0count=fwrite(fid,y,'float64');disp([int2str(count)'valueswritten...']);status=fclose(fid);elsedisp(msg);end2023/2/3机械工业出版社Page272.二进制文件的读取
函数fread以用户自定义格式从文件中读取二进制数据。函数的语法形式如下:A=fread(fileID)A=fread(fileID,sizeA)A=fread(fileID,sizeA,precision)A=fread(fileID,sizeA,precision,skip)A=fread(fileID,sizeA,precision,skip,machineformat)[A,count]=fread(...)2023/2/3机械工业出版社Page282.二进制文件的读取函数各参数含义如下:fileID:fopen函数返回的文件标识;sizeA:指定读取文件中变量的数目,也就是返回矩阵A的维数;precision:指定读取的数据类型。2023/2/3机械工业出版社Page292.二进制文件的读取【例4-7】二进制文件读取示例:将上例中的数据文件读入到工作区间。clc;clearall;closeall;filename='mywritedata.dat';[fid,msg]=fopen(filename,'r');%打开数据文件iffid>0[y,count]=fread(fid,'float64');%读取数据文件disp([int2str(count)'valuesread...']);status=fclose(fid);elsedisp(msg);end2023/2/3机械工业出版社Page304.5读写文本文件4.5.1文本文件的写入4.5.2文本文件的读取2023/2/3机械工业出版社Page31函数说明csvread读取以逗号作为间隔符的文本文件csvwrite保存数据到文本文件,以逗号作为间隔符dlmread按照指定的间隔符读取文本文件的数据dlmwrte按照指定的间隔符将数据写入文本文件textread按照指定的格式从文本文件中读取数据文本文件的读写函数2023/2/3机械工业出版社Page321.文本文件的写入函数dlmwrte将数据按照指定的间隔符写入到文本文件中,函数的语法形式如下:dlmwrite(filename,M)dlmwrite(filename,M,'attrib1',value1,'attrib2',value2,...)dlmwrite(filename,M,'-append')函数各参数含义如下:filename:指定需要写入的文件名;M:写入的数据矩阵;‘attrib1’,‘attrib2’…:函数的属性列表。'-append':以追加的方式写入文件。2023/2/3机械工业出版社Page331.文本文件的写入函数csvwrite是以逗号为间隔将数据保存为文本文件,函数的语法形式如下:csvwrite(filename,M)csvwrite(filename,M,row,col)csvwrite是dlmwrite的一个特例,数据的分隔符为逗号,其余用法与dlmwrite类似。2023/2/3机械工业出版社Page342.文本文件的读取函数dlmread用于读取有分隔符的ASCII文件到矩阵函数中,函数的语法形式如下:M=dlmread(filename,delimiter)M=dlmread(filename,delimiter,R,C)M=dlmread(filename,delimiter,range)函数各参数含义如下:filename:指定具有分割标志的ASCII文件;delimiter:指定文件元素的分割符,默认分隔符使用逗号;R、C:指定了数据在文件中的左上角位置。range:定义的区域块的数值,range=[R1C1R2C2]。也可以使用电子表格符号来指定,range='A1..B7';2023/2/3机械工业出版社Page352.文本文件的读取textread函数的语法形式如下:[A,B,C,...]=textread(filename,format)[A,B,C,...]=textread(filename,format,N)[...]=textread(...,param,value,...)函数各参数含义如下:filename:指定读取的文件名;format:指定读取数据的格式,textread支持的读取数据格式如表4-6所示;N:当N为大于0的整数时,表示按format指定的数据格式读取N次;当N小于0时,读取整个文件的数据;A,B,C,...:返回的数据变量,括号里面变量的个数必须和format中定义的个数相同。2023/2/3机械工业出版社Page364.6操作音频/视频文件4.6.1音频文件的导入导出与播放4.6.2视频文件的导入导出与播放2023/2/3机械工业出版社Page371.音频文件的导入导出与播放auread函数:读取NeXT/Sun格式的音频文件auwrite函数:写入NeXT/Sun格式的音频文件wavread函数:读取WAVE格式的音频文件wavwrite函数:写入WAVE格式的音频文件sound函数:音频播放2023/2/3机械工业出版社Page381.音频文件的导入导出与播放函数auread用于读取NeXT/Sun格式的音频文件,其常用的语法形式如下:y=auread(aufile)[y,Fs]=auread(aufile)[...]=auread(aufile,N)siz=auread(aufile,'size')函数各参数含义如下:aufile:指定读取的音频文件名称;Fs:返回的音频采样率,单位为Hz;nbits:返回每个采样点的比特数;N:从每个通道读取前N个点;siz:返回音频数据的实际大小,包括样点数、通道数。2023/2/3机械工业出版社Page391.音频文件的导入导出与播放与auread相对应的写入操作是auwrite,其常用的语法形式如下:auwrite(y,aufile)auwrite(y,Fs,aufile)auwrite(y,Fs,N,aufile)auwrite(y,Fs,N,method,aufile)N:指定音频的编码比特,N的取值可以是8或16;method:指定音频的编码方法,可以是'mu'或'linear。2023/2/3机械工业出版社Page401.音频文件的导入导出与播放WAVE格式的读写函数为wavread和wavwrite,wavread函数的常用语法形式如下:y=wavread(filename)[y,Fs,nbits]=wavread(filename)[y,Fs,nbits,opts]=wavread(filename)[...]=wavread(filename,N)[...]=wavread(filename,[N1N2])siz=wavread(filename,'size')2023/2/3机械工业出版社Page411.音频文件的导入导出与播放WAVE格式的音频文件写入使用wavwrite,其常用语法形式如下:wavwrite(y,filename)wavwrite(y,Fs,filename)wavwrite(y,Fs,N,filename)2023/2/3机械工业出版社Page421.音频文件的导入导出与播放【例4-13】音频文件的读取与播放示例。clc;clearall;closeall;file='myaudio.wav';[x,fs,bits]=wavread(file);%读入声音文件(*.wav)sound(x,fs,bits);%数据通过声卡转换为声音n=length(x);t=0:1/fs:1/fs*(n-1);y=x(:,1);%左声道信号波形数据plot(t,y);title(['左声道声音波形']);xlabel(['采样点数']);2023/2/3机械工业出版社Page432.视频文件的导入导出与播放视频文件的导入导出
函数aviread读取avi视频文件得到MATLABmovie视频帧,其常用的语法形式如下:mov=aviread(filename)mov=aviread(filename,index)其中index表示视频帧的帧标记,返回的mov为MATLABmovie的结构体。2023/2/3机械工业出版社Page442.视频文件的导入导出与播放视频文件的导入导出函数avifile用于创建avi视频文件,其常用的语法形式如下:aviobj=avifile(filename)avifile(filename,ParameterName,ParameterValue)其中ParameterName,ParameterValue指定了创建的视频文件的各种参数,包括颜色模式、压缩格式、质量等2023/2/3机械工业出版社
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 佤族爱国主义传统文化创造性转化路径研究
- DB14-T 3290-2025 药品追溯信息采集技术要求
- 五年级《心理健康教育》下册
- 恋爱期间行为规范及婚后共同财产保护协议
- 跨国公司财务信息保密及合作条款约定
- 房地产项目标识标牌制作与安装服务协议
- Brand KPIs for hotels:ITC in India-英文培训课件2025.5
- Brand KPIs for neobanking Wise in the United Kingdom-英文培训课件2025.4
- 2025年法律专业研究生入学考试试题及答案
- 2025年国际关系与全球治理基础知识考试卷及答案
- 北京市海淀区2024-2025学年七年级下学期期中地理试题(解析版)
- 人力资源管理2025年考试试卷及答案
- 安徽省合肥市庐江县2023-2024学年七年级下学期6月期末数学试题
- DB31/T 920-2015产业园区服务规范
- 2025年大学辅导员招聘考试题库:学生综合素质评价体系与辅导员思想政治教育试题
- 2025年高纯活性氧化镁项目市场调查研究报告
- 个体商合伙协议书
- 2025年保安证考试答题技巧与试题答案
- 中级宏观经济学知到课后答案智慧树章节测试答案2025年春浙江大学
- DL-T5706-2014火力发电工程施工组织设计导则
- PKPM2005入门(版)
评论
0/150
提交评论