第13 章 文件和数据的导入与导出_第1页
第13 章 文件和数据的导入与导出_第2页
第13 章 文件和数据的导入与导出_第3页
第13 章 文件和数据的导入与导出_第4页
第13 章 文件和数据的导入与导出_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第1页第第13 章章 文件和数据的导入与导出文件和数据的导入与导出 MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社教学目标教学重点教学内容MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第2页教学目标l了解了解 MATLAB 的基本数据操作的基本数据操作l掌握掌握 MATLAB 中文本文件的读写方式中文本文件的读写方式l掌握掌握 MATLAB 通过界面导入导出数据通过界面导入导出数据l了解了解 MATLAB 中的基本输入输出函数中的基本输入

2、输出函数MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第3页教学重点lMATLAB 中文本文件的读写方式中文本文件的读写方式 csvread、csvwrite dlmread、dlmwrite textread,textscan l低级文件低级文件I/O MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第4页教学内容l数据基本操作数据基本操作l文本文件的读写文本文件的读写 l低级文件低级文件I/O l利用界面工具导入数据利用界面工具导入数据 MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版

3、社2022年4月17日第5页数据基本操作数据基本操作 l文件的存储文件的存储 l数据导入数据导入 l文件的打开文件的打开 MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第6页文件的存储文件的存储 l保存整个工作区保存整个工作区点击点击“File”菜单中的菜单中的“Save Workspace As”选项,或者点击工作区浏览器工具栏中的选项,或者点击工作区浏览器工具栏中的“Save”,可以将工作区中的变量保存为,可以将工作区中的变量保存为 MAT 文文件。件。l保存工作区中的变量保存工作区中的变量在工作区浏览器中,右键单击需要保存的变量名,在工作区浏览

4、器中,右键单击需要保存的变量名,选择选择“Save As”,将该变量保存为,将该变量保存为 MAT 文件。文件。l利用利用 save 命令保存命令保存该命令可以保存工作区,或工作区中任何指定文该命令可以保存工作区,或工作区中任何指定文件。件。MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第7页save命令命令lsave命令的调用格式为:命令的调用格式为: save,将工作区中的所有变量保存在当前工作区中的文件中,文件名为,将工作区中的所有变量保存在当前工作区中的文件中,文件名为 matlab.mat,MAT 文件可以通过文件可以通过 load 函数再

5、次导入工作区,函数再次导入工作区,MAT 函数函数可以被不同的机器导入,甚至可以通过其他的程序调用;可以被不同的机器导入,甚至可以通过其他的程序调用; save(filename),将工作区中的所有变量保存为文件,文件名由,将工作区中的所有变量保存为文件,文件名由 filename 指定。如果指定。如果 filename 中包含路径,则将文件保存在相应目录中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径;下,否则默认路径为当前路径; save(filename, var1, var2, .),保存指定的变量在,保存指定的变量在 filename 指定的指定的文件中;文件中; sav

6、e(filename, -struct, s),保存结构体,保存结构体 s 中全部域作为单独的变量;中全部域作为单独的变量; save(filename, -struct, s, f1, f2, .),保存结构体,保存结构体 s 中的指定变量;中的指定变量; save(-regexp, expr1, expr2, .),通过正则表达式指定待保存的变量需,通过正则表达式指定待保存的变量需满足的条件;满足的条件; save(., format),指定保存文件的格式,格式可以为,指定保存文件的格式,格式可以为 MAT 文件、文件、ASCII 文件等。文件等。MATLAB R2007基础教程基础教程

7、清华大学出版社清华大学出版社2022年4月17日第8页数据导入数据导入 MATLAB 中导入数据通常由函数中导入数据通常由函数 load 实现,该函数的用法为:实现,该函数的用法为: load,如果,如果 matlab.mat 文件存在,导入文件存在,导入 matlab.mat 中的所有变量,如中的所有变量,如果不存在,则返回果不存在,则返回 error; load filename,将,将 filename 中的全部变量导入到工作区中;中的全部变量导入到工作区中; load filename X Y Z .,将,将 filename 中的变量中的变量 X、Y、Z 等导入到工作等导入到工作区中

8、,如果文件为区中,如果文件为 MAT 文件,在指定变量时可以使用通配符文件,在指定变量时可以使用通配符“*”; load filename -regexp expr1 expr2 .,通过正则表达式指定需要导入,通过正则表达式指定需要导入的变量;的变量; load -ascii filename,无论输入文件名是否包含有扩展名,将其以,无论输入文件名是否包含有扩展名,将其以 ascii 格式导入,如果指定的文件不是数字文本,则返回格式导入,如果指定的文件不是数字文本,则返回 error; load -mat filename,无论输入文件名是否包含有扩展名,将其以,无论输入文件名是否包含有扩展

9、名,将其以 mat 格式导入,如果指定的文件不是格式导入,如果指定的文件不是 MAT 文件,则返回文件,则返回 error;MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第9页Importdata 函数函数lMATLAB 中,另一个导入数据的常用函数为中,另一个导入数据的常用函数为 importdata,该函数的用法为:,该函数的用法为: importdata(filename),将,将 filename 中的数据导入中的数据导入到工作区中;到工作区中; A = importdata(filename),将,将 filename 中的数据导中的数据导

10、入到工作区中,并保存为变量入到工作区中,并保存为变量 A; importdata(filename,delimiter),将,将 filename 中中的数据导入到工作区中,以的数据导入到工作区中,以 delimiter 指定的符号作为指定的符号作为分隔符;分隔符;l与与 load 函数不同,函数不同,importdata 将文件中的数据将文件中的数据以结构体的方式导入到工作区中。以结构体的方式导入到工作区中。MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第10页文件的打开文件的打开 lMATLAB 中可以使用中可以使用 open 命令打开各种命令打

11、开各种格式的文件,格式的文件,MATLAB 自动根据文件的扩自动根据文件的扩展名选择相应的编辑器。展名选择相应的编辑器。l读者需要注意的是,读者需要注意的是,open(filename.mat) 和和 load(filename.mat) 的不同,前者将的不同,前者将filename.mat 以结构体的方式打开在工作以结构体的方式打开在工作区中,后者将文件中的变量导入到工作区区中,后者将文件中的变量导入到工作区中,如果需要访问其中的内容,需要以不中,如果需要访问其中的内容,需要以不同的格式进行。同的格式进行。MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月1

12、7日第11页文本文件的读写文本文件的读写 l在上一节中介绍的函数和命令主要用于读写在上一节中介绍的函数和命令主要用于读写 mat 文件,在应用中,需要读写更多格式的文件,如文件,在应用中,需要读写更多格式的文件,如文本文件,文本文件,word 文件,文件,xml 文件,文件,xls 文件及图文件及图像、音视频文件等。本节介绍文本文件(像、音视频文件等。本节介绍文本文件(txt)的)的读写。读写。lMATLAB 中实现文本文件读写的函数如表所示。中实现文本文件读写的函数如表所示。函数功能csvread读入以逗号分隔的数据csvwrite将数据写入文件,数据间以逗号分隔dlmread将以 ASCI

13、I 码分隔的数值数据读入到矩阵中dlmwrite将矩阵数据写入到文件中,以 ASCII 分隔textread从文本文件中读入数据,将结果分别保存textscan从文本文件中读入数据,将结果保存为单元数组MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第12页csvread 函数函数 l M = csvread(filename),将文件,将文件 filename 中的数据读中的数据读入,并且保存为入,并且保存为 M,filename 中只能包含数字,并且数中只能包含数字,并且数字之间以逗号分隔。字之间以逗号分隔。M 是一个数组,行数与是一个数组,行数与

14、 filename 的的行数相同,列数为行数相同,列数为 filename 列的最大值,对于元素不足列的最大值,对于元素不足的行,以的行,以 0 补充。补充。lM = csvread(filename, row, col),读取文件,读取文件 filename 中的数据,起始行为中的数据,起始行为 row,起始列为,起始列为 col,需要注意的是,需要注意的是,此时的行列从此时的行列从 0 开始。开始。lM = csvread(filename, row, col, range),读取文件,读取文件 filename 中的数据,起始行为中的数据,起始行为 row,起始列为,起始列为 col,读

15、取,读取的数据由数组的数据由数组 range 指定,指定,range 的格式为:的格式为:R1 C1 R2 C2,其中,其中 R1、C1 为读取区域左上角的行和列,为读取区域左上角的行和列,R2、C2为读取区域右下角的行和列。为读取区域右下角的行和列。MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第13页dlmread 函数函数 lM = dlmread(filename)lM = dlmread(filename, delimiter)lM = dlmread(filename, delimiter, R, C)lM = dlmread(filen

16、ame, delimiter, range)l其中参数其中参数 delimiter 用于指定文件中的分隔符,用于指定文件中的分隔符,其他参数的意义与其他参数的意义与 csvread 函数中参数的意义相函数中参数的意义相同,这里不再赘述。同,这里不再赘述。dlmread 函数与函数与 csvread 函函数的差别在于,数的差别在于,dlmread 函数在读入数据时可以函数在读入数据时可以指定分隔符,不指定时默认分隔符为逗号。指定分隔符,不指定时默认分隔符为逗号。MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第14页dlmwrite 函数函数 ldlmw

17、rite(filename, M),将矩阵,将矩阵 M 的数据写入文件的数据写入文件 filename 中,中,以逗号分隔;以逗号分隔;ldlmwrite(filename, M, D),将矩阵,将矩阵 M 的数据写入文件的数据写入文件 filename 中,采用指定的分隔符分隔数据,如果需要中,采用指定的分隔符分隔数据,如果需要 tab 键,可以用键,可以用“t”指指定;定;ldlmwrite(filename, M, D, R, C),指定写入数据的起始位置;,指定写入数据的起始位置;ldlmwrite(filename, M, attribute1, value1, attribute2

18、, value2, .),指定任意数目的参数,可以指定的参数见下表;指定任意数目的参数,可以指定的参数见下表;ldlmwrite(filename, M, -append),如果,如果 filename 指定的文件存在,指定的文件存在,在文件后面写入数据,不指定时则覆盖原文件;在文件后面写入数据,不指定时则覆盖原文件;ldlmwrite(filename, M, -append, attribute-value list),叙写文件,叙写文件,并指定参数。并指定参数。ldlmwrite 函数的可用参数如表所示。函数的可用参数如表所示。参数名功能delimiter用于指定分隔符newline用于

19、指定换行符,可以选择“pc”或者“unix”roffset行偏差,指定文件第一行的位置,roffset 的基数为 0coffset列偏差,指定文件第一列的位置,coffset 的基数为 0precision指定精确度,可以指定精确维数,或者采用 c 语言的格式,如“%10.5f”MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第15页textread,textscan l当文件的格式已知时,可以利用当文件的格式已知时,可以利用 textread 函数和函数和 textscan 函数读入。函数读入。MATLAB R2007基础教程基础教程 清华大学出版社

20、清华大学出版社2022年4月17日第16页低级文件低级文件I/O l本节介绍一些基本的文件操作,这些操作如表所本节介绍一些基本的文件操作,这些操作如表所示示:函数功能fclose关闭打开的文件feof判断是否为文件结尾ferror文件输入输出中的错误查找fgetl读入一行,忽略换行符fgets读入一行,直到换行符fopen打开文件,或者获取打开文件的信息fprintf格式化输入数据到文件fread从文件中读取二进制数据frewind将文件的位置指针移至文件开头位置fscanf格式化读入fseek设置文件位置指针ftell文件位置指针fwrite向文件中写入数据MATLAB R2007基础教程基

21、础教程 清华大学出版社清华大学出版社2022年4月17日第17页fprintf 函数函数 lcount = fprintf(fid, format, A, .),该语句将矩,该语句将矩阵阵 A 及后面其他参数中数字的实部以及后面其他参数中数字的实部以 format 指指定的格式写入到定的格式写入到 fid 指定的文件中,返回写入数指定的文件中,返回写入数据的字节数。据的字节数。l上面语句中,参数上面语句中,参数 format 由由 % 开头,共可由四开头,共可由四个部分组成,分别为:个部分组成,分别为: 标记(标记(flag),为可选部分;),为可选部分; 宽度和精度指示,为可选部分;宽度和精

22、度指示,为可选部分; 类型标志符,为可选部分;类型标志符,为可选部分; 转换字符,为必需部分。转换字符,为必需部分。MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第18页标记标记l1标记标记l标记用于控制输出的对齐方式,可以选择的内容标记用于控制输出的对齐方式,可以选择的内容如表所示。如表所示。 函数功能示例负号(-)在参数左侧进行判别%-5.2d加号(+)在数字前添加符号%+5.2d空格在数字前插入空格% 5.2d0在数字前插入 0%05.2dMATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第19页宽度和精

23、度指示宽度和精度指示l2宽度和精度指示宽度和精度指示l用户可以通过数字指定输出数字的宽度及用户可以通过数字指定输出数字的宽度及精度,格式为:精度,格式为: %6f,指定数字的宽度;,指定数字的宽度; %6.2f,指定数字的宽度及精度;,指定数字的宽度及精度; %.2f,指定数字的精度。,指定数字的精度。MATLAB R2007基础教程基础教程 清华大学出版社清华大学出版社2022年4月17日第20页转换字符转换字符l3转换字符转换字符l转换字符用于指定输出的符号,可以选择的内容转换字符用于指定输出的符号,可以选择的内容如表所示。如表所示。标志符意义%c输出单个字符%d输出有符号十进制数%e采用指数格式输出,采用小写字母 e,如:3.1415e+00%E采用指数格式输出,采用大写字母 E,如:3.1415E+00%f以定点数的格式输出%g%e 及 %f 的更紧凑的格式,不显示数字中无效的 0%G与 %g 相同,但是使用大写字母 E%i有符号十进制数%o无符号八进制数%s输出字符串%u无符号十进制数%x十六进制数(使用小写

温馨提示

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

评论

0/150

提交评论