文件输入输出ppt课件_第1页
文件输入输出ppt课件_第2页
文件输入输出ppt课件_第3页
文件输入输出ppt课件_第4页
文件输入输出ppt课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、文件输入输出一、概述 二、高层I/O函数三、数据导入导游四、底层I/O函数一、概述一、概述 1、输入输出、输入输出(I/O) 数据输入和输出I/O 输入:从磁盘文件获得数据,加载到任务空间。 输出:从任务空间变量保管到文件中。 高层文件和底层文件I/O操作 高层:针对不同的数据格式文件,提供不同的I/O函数,有现成的函数供运用,仅需少量编程。 底层:运用文件标识符可访问任何类型的数据文件,更加灵敏地完成相对特殊的义务,需求复杂编程 数据导入导游:数据导入用的图形界面,用于导入知格式的文件和有一定规那么的ASCII文本文件2 2、二进制文件和文本文件、二进制文件和文本文件 文本文件将文件看作是由

2、字节(byte)组成的,每个字节(bit)的最高位都是0,文本文件运用了一个字节中的七位来表示一切的信息。 二进制文件将字节中的一切位都用上了。 按照文本方式翻开文件时会进展转换,将每个字节转换成ASCII码。 以二进制方式翻开文件时不会进展任何的转换。 进展文本编辑时,编辑的最小单位是字节。 二进制文件编辑最小单位那么是位(bit)。 MATLAB提供一种特殊的数据文件格式MAT文件,这种文件是一种二进制格式文件,扩展名为 .mat,它为MATLAB提供了跨平台的数据交互才干。这些 *.mat 文件之所以可以独立于各种平台的缘由是在文件头带有设备的签名,MATLAB 在载入文件时将检查这个签

3、名,假设发现文件来源不同于当前的系统,那么进展必要的转换。3 3、matmat数据文件格式数据文件格式二、二、 高层高层I/O函数函数MAT文件是MATLAB独有的文件格式,是MATLAB用户最常用的数据文件格式。在MATLAB中,可以将当前任务空间中的变量保管成MAT文件,也可以将MAT文件中的数据导入到MATLAB的任务空间中,这两个过程分别运用save指令和load指令就可以完成。 需求阐明一点, save和load指令不仅可以加载和保管MAT格式的数据文件,而且还可以加载普通的文本格式文件。但是在文本数据文件中不能包含特殊的文件间隔符。因此,将这两个指令称之为操作普通数据文件的指令。

4、1、MAT文件的读写文件的读写save将当前工作空间所有变量保存在当前目录下文件matlab.mat内save filename将当前工作空间中所有的变量保存到指定的文件中save filename var1 var2.将当前工作空间中的变量var1、var2等保存到指定文件中save filename data*(功能同上)其中*为通配符save .option按照option的不同取值保存数据save(filename,.)save指令的函数格式用法save 将当前任务空间中的变量保管到指定的数据文件中,其根本语法为:将当前任务空间中的变量保管到指定的数据文件中,其根本语法为:其中,opt

5、ion可以有如下几种能够:-mat保管为二进制的MAT文件格式(默许)-append 在已有的数据文件尾部追加数据-ascii保管为ASCII文本格式,数据按照八位精度保管-ascii -double保管为ASCII文本格式,数据按照十六位精度保管-ascii tabs保管为ASCII文本格式,数据之间运用制表符作为间隔load 将数据文件的数据导入到将数据文件的数据导入到MATLAB的任务空间,的任务空间,其根本的语法为:其根本的语法为:留意:运用load指令加载数据文件时,数据文件只需保管在MATLAB的搜索途径上即可,同时假设不指明数据文件的扩展名,那么数据文件默许按照二进制的MAT文件

6、格式加载,否那么都按照文本格式文件加载。load将matlab.mat文件中所有的变量加载到当前的工作空间load filename将指定文件中所有的变量加载到当前的工作空间load filename var1 var2 .将指定文件中的指定变量加载到当前工作空间load filename -ascii将数据文件按照文本格式加载load filename -mat将数据文件按照MAT文件格式加载S = load(.)load指令的函数格式用法例例: save和和load指令例如。指令例如。clear allx1 = 2; x2 = 3; x3 = 4; y1=0;save xdata x1 x

7、2save xdata2.dat x* -asciiclear allload xdata执行执行load 命令后,请查看内存中能否有命令后,请查看内存中能否有相应的变量相应的变量执行执行load 命令后,请查看当命令后,请查看当前任务目录,确认能否生成了相前任务目录,确认能否生成了相应的文件。应的文件。2、文本文件的读写、文本文件的读写 csvread读取以逗号作为间隔符的文本文件csvwrite保存数据到文本文件,逗号作为间隔符dlmread按照指定的间隔符读取文本文件的数据dlmwrite按照指定间隔符将数据写入文本文件textread按照指定的格式从文本文件中读取数据strread按照

8、指定的格式从字符串中读取数据textscan按照指定的格式从文本文件、字符串中读取数据(1) csvreadM = csvread(filename)将文件 filename 中的数据读入,并且保存为 M,filename 中只能包含数字,并且数字之间以逗号分隔。M 是一个数组,行数与 filename 的行数相同,列数为 filename 列的最大值,对于元素不足的行,以 0 补充。M = csvread(filename, row, col)读取文件 filename 中的数据,起始行为 row,起始列为 col,需要注意的是,此时的行列从 0 开始。M = csvread(filenam

9、e, row, col, range)读取文件 filename 中的数据,起始行为 row,起始列为 col,读取的数据由数组 range 指定,range 的格式为:R1 C1 R2 C2,其中 R1、C1 为读取区域左上角的行和列,R2、C2为读取区域右下角的行和列(2)dlmread M = dlmread(filename) M = dlmread(filename, delimiter) M = dlmread(filename, delimiter, R, C) M = dlmread(filename, delimiter, range)其中参数 delimiter 用于指定文

10、件中的分隔符,其他参数的意义与 csvread 函数中参数的意义一样。dlmread 函数与 csvread 函数的差别在于,dlmread 函数在读入数据时可以指定分隔符,不指定时默许分隔符为逗号。(3)dlmwritedlmwrite(filename, M),将矩阵 M 的数据写入文件 filename 中,以逗号分隔;dlmwrite(filename, M, D),将矩阵 M 的数据写入文件 filename 中,采用指定的分隔符分隔数据,假设需求 tab 键,可以用“t指定;dlmwrite(filename, M, D, R, C),指定写入数据的起始位置;dlmwrite(fi

11、lename, M, attribute1, value1, attribute2, value2, .),指定恣意数目的参数,可以指定的参数见下表;dlmwrite(filename, M, -append),假设 filename 指定的文件存在,在文件后面写入数据,不指定时那么覆盖原文件;dlmwrite(filename, M, -append, attribute-value list),叙写文件,并指定参数。参数名参数名功能功能delimiter用于指定分隔符用于指定分隔符newline用于指定换行符,可以选择用于指定换行符,可以选择“pc”或者或者“unix”roffset行偏差

12、,指定文件第一行的位置,行偏差,指定文件第一行的位置,roffset 的基数为的基数为 0coffset列偏差,指定文件第一列的位置,列偏差,指定文件第一列的位置,coffset 的基数为的基数为 0precision指定精确度,可以指定精确维数,或者采用指定精确度,可以指定精确维数,或者采用 c 语言的格式,如语言的格式,如“%10.5f”例:有一个例:有一个text_test.txt文件可从课程网页下载,文件可从课程网页下载,包含包含60000行数据,每行两个数据以空格分隔,前面行数据,每行两个数据以空格分隔,前面的为的为x,后面的为,后面的为y要留意的是,要留意的是,y的后面也有一个的后

13、面也有一个空格。请绘制出这些数据在直角坐标系中的图形。空格。请绘制出这些数据在直角坐标系中的图形。A = dlmread(text_test.txt, ); plot(A(:,1),A(:,2)3、Excel文件的读写文件的读写 .xlsxlsfinfo获取文件类型等基本信息xlsread读取Excel电子表格文件的数据xlswrite写入Excel电子表格文件的数据练习:练习:1、查阅、查阅matlab的协助系统,了解上面这些函数的根的协助系统,了解上面这些函数的根本用法。本用法。2、新建一、新建一excel任务簿,输入一些数据并存盘,封任务簿,输入一些数据并存盘,封锁锁excel。3、利用

14、、利用xlsread将将excel任务簿中的数据导入到任务簿中的数据导入到matlab中。中。4、检查数据导入能否正确,然后对数据进展一些修、检查数据导入能否正确,然后对数据进展一些修正,并将修正后的数据利用正,并将修正后的数据利用xlswrite函数写入原先的函数写入原先的excel任务簿文件。任务簿文件。6、用、用excel翻开任务簿文件,查看数据能否被修正。翻开任务簿文件,查看数据能否被修正。4、图像文件的读写、图像文件的读写函数函数说明imformats显示matlab支持的图形格式列表及相关信息imfinfo获取图形文件信息imread读取图形文件imwrite写入图形文件imsho

15、w显示图片image显示图片对象以image_test.jpg为例(可从课程网页下载)%读取并显示图片Img = imread(image_test.jpg);imshow(Img);%修正图片、显示、存盘Img(:,:,3)=0;imshow(Img)imwrite(Img,image_new.jpg)5、其他格式文件的读写、其他格式文件的读写除了前面讲述的几种数据文件类型以外,MATLAB还可以加载其他很多不同类型的数据文件,例如声音、视频等二进制数据文件。可以键入doc fileformats 命令来获取MATLAB可以读入的二进制文件类型以及相应的加载函数信息。三、数据导入导游三、数据

16、导入导游 MATLAB为了便于用户导入数据还提供了导入数据导游,导入数据导游是一个图形用户界面,可以协助用户导入各种类型的数据,这样,就不用经过编写程序就可以把数据导入到MATLAB的任务空间。启动导入数据导游有可以运用不同的方法:(1) 在MATLAB命令行中,键入指令uiimport。或:(2) 经过菜单命令,执行“File菜单下的“Import Data命令。(3) 执行MATLAB的“Start菜单中“MATLAB子菜单下的“Import Wizard命令。uiimport 命令启动数据导入导游的初始画面命令启动数据导入导游的初始画面 单击“Browse按钮,在弹出的对话框中选择需求加

17、载的数据文件选择需求加载的数据文件 用鼠标选择需求翻开的文件,然后单击“翻开按钮之后,数据导入导游尝试分析并加载数据文件,并且将可以加载的数据显示在图形界面中。 加载了数据的数据导入对话框 可以经过“data、“textdata和“colheaders标签页察看导入的数据,假设导入正确无误后,单击“Next按钮选择适宜的数据分隔符,之后单击“Next按钮接下来选择数据变量,之后就可以单击“Finish按钮完成整个数据导入的过程,这时在MATLAB的任务空间中,将出现导入的变量。还可以点击变量名,修正还可以点击变量名,修正变量称号变量称号练习:练习:运用数据导入导游,把运用数据导入导游,把tex

18、t_test.txt文件中文件中的数据导入的数据导入matlab。四、底层四、底层I/O函数函数 1、翻开、封锁文件 2、读写数据 3、文件位置指针r打开的文件进行读操作。w打开的文件进行写操作,若文件不存在则创建新的文件。 a打开的文件进行追加数据操作,若文件不存在则创建新的文件。r+打开的文件既可以进行写操作,也可以进行读操作。w+打开的文件既可以进行写操作,也可以进行读操作,若文件不存在则创建新的文件。a+打开的文件既可以进行写操作、读操作,也可以进行数据追加操作,若文件不存在则创建新的文件。fopen翻开文件翻开文件fid = fopen(filename, flag);flag为控制

19、文件读写的标识符,它的取值可以为为控制文件读写的标识符,它的取值可以为假设可以胜利地翻开文件,那么前往值fid为非负整数,否那么为-11、 翻开、封锁文件翻开、封锁文件 fclose封锁曾经翻开的文件封锁曾经翻开的文件status = fclose(fid)封锁文件之后,fid变量依然存在于任务空间中,但是对fid再进展文件I/O操作是错误的。假设函数运转胜利,那么status为0,否那么为-1。 2、 读写数据读写数据 函 数说 明输 出fscanf从文件中读取格式化的输入数据矩阵fprintf向文件写入格式化的输出写入数据文件的数据个数fgetl读取文本文件的一行数据,不包含文本的结束符字

20、符串fgets读取文本文件的一行数据,包含文本的结束符字符串fread读取文件的二进制数据数据矩阵和读入的数据个数fwrite写入文件的二进制数据写入的字节数翻开文件之后就要进展文件内容的读写了,MATLAB提供了两大类低级文件I/O函数进展文件内容的读写二进制文件读写函数和文本文件读写函数。fprintf :格式化输出:格式化输出 count = fprintf( fid, format, A, . )该语句将矩阵 A 及后面其他参数中数字的实部以 format 指定的格式写入到 fid 指定的文件中,前往写入数据的字节数。参数 format 由 % 开头,如下所示:(1)标志flag,为可

21、选部分;(2)宽度和精度指示,为可选部分;(3)转换字符,为必需部分。(1)标志:用于控制输出的对齐方式,可以选择:标志:用于控制输出的对齐方式,可以选择: -(负号)在参数左侧进行判别%-5.2d+ (正号)在数字前添加符号%+5.2d空格在数字前插入空格% 5.2d0在数字前插入 0%05.2d(2)宽度和精度指示:可以经过数字指定输出数字的宽宽度和精度指示:可以经过数字指定输出数字的宽度及精度,格式为:度及精度,格式为:%6f指定数字的宽度;%6.2f指定数字的宽度及精度;%.2f指定数字的精度。转换字符意义%c输出单个字符%d输出有符号十进制数%e采用指数格式输出,采用小写字母 e,如

22、:3.1415e+00%E采用指数格式输出,采用大写字母 E,如:3.1415E+00%f以定点数的格式输出%g%e 及 %f 的更紧凑的格式,不显示数字中无效的 0%G与 %g 相同,但是使用大写字母 E%i有符号十进制数%o无符号八进制数%s输出字符串%u无符号十进制数%x十六进制数(使用小写字母 af)%X十六进制数(使用大写字母 AF)(3)转换字符转换字符(4)本义符:转换字符用于指定输出的符号,可以选择本义符:转换字符用于指定输出的符号,可以选择的内容如表所示。的内容如表所示。转义符功能b退格f表格填充n换行符r回车ttab,反斜线 或 ,单引号%,百分号例:用 fprintf 函

23、数在显示器上输出字符串。fid取1 表示显示器假设不提供fid,也默以为1用两个单引号显示单引号运用 n 进展换行。 fprintf(1,Its Friday.n)Its Friday.fprintf 练习:练习:a = 1:10;11:20fprintf(%dn,a)fprintf(%2dn,a)fprintf(%02dn,a)fprintf(%+2d,a)fprintf(%02d %02dn,a)fprintf(%02d %02d %02d %02dn,a)先想一想各条fprintf语句在屏幕上的输出是什么?然后再看matlab的输出结果,与他想的一样吗?fid = fopen(test.

24、txt,wt)fprintf(fid,%02d %02d %02d %02d %02dn,a)fclose(fid)这条语句是输出到当前任务目录下的这条语句是输出到当前任务目录下的test.txt文件中文件中fscanf:格式化输入:格式化输入 array = fscanf(fid, format) array, count = fscanf(fid, format, size) fid: 所要读取的文件的文件标识format:控制如何读取的格式字符串,array:接受数据的数组,count:前往从文件读取的变量的个数。size:指定从文件读取数据的数目,可取: n 准确地读取n个值。执行完相应的语句后,array将是一个包含有n个值的列向量 Inf 读取文件中一切值。执行完相应的语句后,array将是一个列向量,包含有从文件一切值。 m,n 从文件中准确定地读取mn个值,array是一个mn的数组。 fscanf 举例:举例:在前面fprintf函数的练习中,在当前任务目录下生成了一个test.txt文件,可以运用文本编辑器,如记事本查看其详细内容。现运用fscanf函

温馨提示

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

评论

0/150

提交评论