欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    文件输入输出.ppt

    • 资源ID:60165621       资源大小:309KB        全文页数:36页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    文件输入输出.ppt

    文件输入输出 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望一、概述一、概述 1、输入输出、输入输出(I/O)数据输入和输出(I/O)输入:输入:从磁盘文件获得数据,加载到工作空间。输出:输出:从工作空间变量保存到文件中。高层文件和底层文件I/O操作高层:高层:针对不同的数据格式文件,提供不同的I/O函数,有现成的函数供使用,仅需少量编程。底层:底层:使用文件标识符可访问任何类型的数据文件,更加灵活地完成相对特殊的任务,需要复杂编程数据导入向导:数据导入向导:数据导入用的图形界面,用于导入已知格式的文件和有一定规则的ASCII文本文件2 2、二进制文件和文本文件、二进制文件和文本文件文本文件将文件看作是由字节(byte)组成的,每个字节(bit)的最高位都是0,文本文件使用了一个字节中的七位来表示所有的信息。二进制文件将字节中的所有位都用上了。按照文本方式打开文件时会进行转换,将每个字节转换成ASCII码。以二进制方式打开文件时不会进行任何的转换。进行文本编辑时,编辑的最小单位是字节。二进制文件编辑最小单位则是位(bit)。MATLAB提供一种特殊的数据文件格式MAT文件,这种文件是一种二进制格式文件,扩展名为.mat,它为MATLAB提供了跨平台的数据交互能力。这些*.mat 文件之所以能够独立于各种平台的原因是在文件头带有设备的签名,MATLAB 在载入文件时将检查这个签名,如果发现文件来源不同于当前的系统,则进行必要的转换。3 3、matmat数据文件格式数据文件格式二、二、高层高层I/O函数函数MAT文件是MATLAB独有的文件格式,是MATLAB用户最常用的数据文件格式。在MATLAB中,可以将当前工作空间中的变量保存成MAT文件,也可以将MAT文件中的数据导入到MATLAB的工作空间中,这两个过程分别使用save指令和load指令就可以完成。需要说明一点,save和load指令不仅能够加载和保存MAT格式的数据文件,而且还能够加载一般的文本格式文件。但是在文本数据文件中不能包含特殊的文件间隔符。因此,将这两个指令称之为操作一般数据文件的指令。1、MAT文件的读写文件的读写save将当前工作空间所有变量保存在当前目录下文件matlab.mat内save filename将当前工作空间中所有的变量保存到指定的文件中save filename var1 var2.将当前工作空间中的变量var1、var2等保存到指定文件中save filename data*(功能同上)其中*为通配符save.option按照option的不同取值保存数据save(filename,.)save指令的函数格式用法save 将当前工作空间中的变量保存到指定的数据文件中,其基本语法为:其中,option可以有如下几种可能:-mat保存为二进制的MAT文件格式(默认)-append 在已有的数据文件尾部追加数据-ascii保存为ASCII文本格式,数据按照八位精度保存-ascii-double保存为ASCII文本格式,数据按照十六位精度保存-ascii tabs保存为ASCII文本格式,数据之间使用制表符作为间隔load 将数据文件的数据导入到MATLAB的工作空间,其基本的语法为:注意:使用load指令加载数据文件时,数据文件只要保存在MATLAB的搜索路径上即可,同时若不指明数据文件的扩展名,则数据文件默认按照二进制的MAT文件格式加载,否则都按照文本格式文件加载。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 x2save xdata2.dat x*-asciiclear allload xdata执行执行load 命令后,请查看内存中是否有命令后,请查看内存中是否有相应的变量相应的变量执行执行load 命令后,请查看当命令后,请查看当前工作目录,确认是否生成了相前工作目录,确认是否生成了相应的文件。应的文件。2、文本文件的读写、文本文件的读写 csvread读取以逗号作为间隔符的文本文件csvwrite保存数据到文本文件,逗号作为间隔符dlmread按照指定的间隔符读取文本文件的数据dlmwrite按照指定间隔符将数据写入文本文件textread按照指定的格式从文本文件中读取数据strread按照指定的格式从字符串中读取数据textscan按照指定的格式从文本文件、字符串中读取数据(1)csvreadM=csvread(filename)将文件 filename 中的数据读入,并且保存为 M,filename 中只能包含数字,并且数字之间以逗号分隔。M 是一个数组,行数与 filename 的行数相同,列数为 filename 列的最大值,对于元素不足的行,以 0 补充。M=csvread(filename,row,col)读取文件 filename 中的数据,起始行为 row,起始列为 col,需要注意的是,此时的行列从 0 开始。M=csvread(filename,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 用于指定文件中的分隔符,其他参数的意义与 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(filename,M,attribute1,value1,attribute2,value2,.),指定任意数目的参数,可以指定的参数见下表;dlmwrite(filename,M,-append),如果 filename 指定的文件存在,在文件后面写入数据,不指定时则覆盖原文件;dlmwrite(filename,M,-append,attribute-value list),叙写文件,并指定参数。参数名参数名功能功能delimiter用于指定分隔符用于指定分隔符newline用于指定用于指定换换行符,可以行符,可以选择选择“pc”或者或者“unix”roffset行偏差,指定文件第一行的位置,行偏差,指定文件第一行的位置,roffset 的基数的基数为为 0coffset列偏差,指定文件第一列的位置,列偏差,指定文件第一列的位置,coffset 的基数的基数为为 0precision指定精确度,可以指定精确指定精确度,可以指定精确维维数,或者采用数,或者采用 c 语语言的格式,如言的格式,如“%10.5f”例:例:有一个text_test.txt文件(可从课程网页下载),包含60000行数据,每行两个数据以空格分隔,前面的为x,后面的为y(要注意的是,y的后面也有一个空格)。请绘制出这些数据在直角坐标系中的图形。A=dlmread(text_test.txt,);plot(A(:,1),A(:,2)3、Excel文件的读写文件的读写(.xls)xlsfinfo获取文件类型等基本信息xlsread读取Excel电子表格文件的数据xlswrite写入Excel电子表格文件的数据练习:练习:1、查阅matlab的帮助系统,了解上面这些函数的基本用法。2、新建一excel工作簿,输入一些数据并存盘,关闭excel。3、利用xlsread将excel工作簿中的数据导入到matlab中。4、检查数据导入是否正确,然后对数据进行一些修改,并将修改后的数据利用xlswrite函数写入原先的excel工作簿文件。6、用excel打开工作簿文件,查看数据是否被修改。4、图像文件的读写、图像文件的读写函数函数说明imformats显示matlab支持的图形格式列表及相关信息imfinfo获取图形文件信息imread读取图形文件imwrite写入图形文件imshow显示图片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能够读入的二进制文件类型以及相应的加载函数信息。三、数据导入向导三、数据导入向导 MATLAB为了便于用户导入数据还提供了导入数据向导,导入数据向导是一个图形用户界面,能够帮助用户导入各种类型的数据,这样,就不必通过编写程序就可以把数据导入到MATLAB的工作空间。启动导入数据向导有可以使用不同的方法:(1)在MATLAB命令行中,键入指令uiimport。或:(2)通过菜单命令,执行“File”菜单下的“Import Data”命令。(3)执行MATLAB的“Start”菜单中“MATLAB”子菜单下的“Import Wizard”命令。uiimport 命令启动数据导入向导的初始画面 单击“Browse”按钮,在弹出的对话框中选择需要加载的数据文件选择需要加载的数据文件 用鼠标选择需要打开的文件,然后单击“打开”按钮之后,数据导入向导尝试分析并加载数据文件,并且将能够加载的数据显示在图形界面中。加载了数据的数据导入对话框 可以通过“data”、“textdata”和“colheaders”标签页察看导入的数据,若导入正确无误后,单击“Next”按钮选择合适的数据分隔符,之后单击“Next”按钮接下来选择数据变量,之后就可以单击“Finish”按钮完成整个数据导入的过程,这时在MATLAB的工作空间中,将出现导入的变量。还可以点击变量名,修改还可以点击变量名,修改变量名称变量名称练习:练习:使用数据导入向导,把使用数据导入向导,把text_test.txt文件中的数据文件中的数据导入导入matlab。四、底层四、底层I/O函数函数1、打开、关闭文件2、读写数据3、文件位置指针r打开的文件进行读操作。w打开的文件进行写操作,若文件不存在则创建新的文件。a打开的文件进行追加数据操作,若文件不存在则创建新的文件。r+打开的文件既可以进行写操作,也可以进行读操作。w+打开的文件既可以进行写操作,也可以进行读操作,若文件不存在则创建新的文件。a+打开的文件既可以进行写操作、读操作,也可以进行数据追加操作,若文件不存在则创建新的文件。fopen打开文件fid=fopen(filename,flag);flag为控制文件读写的标识符,它的取值可以为若能够成功地打开文件,则返回值fid为非负整数,否则为-11、打开、关闭文件打开、关闭文件 fclose关闭已经打开的文件status=fclose(fid)关闭文件之后,fid变量依然存在于工作空间中,但是对fid再进行文件I/O操作是错误的。若函数运行成功,则status为0,否则为-1。2、读写数据读写数据 函 数说 明输 出fscanf从文件中读取格式化的输入数据矩阵fprintf向文件写入格式化的输出写入数据文件的数据个数fgetl读取文本文件的一行数据,不包含文本的结束符字符串fgets读取文本文件的一行数据,包含文本的结束符字符串fread读取文件的二进制数据数据矩阵和读入的数据个数fwrite写入文件的二进制数据写入的字节数打开文件之后就要进行文件内容的读写了,MATLAB提供了两大类低级文件I/O函数进行文件内容的读写二进制文件读写函数和文本文件读写函数。fprintf:格式化输出:格式化输出 count=fprintf(fid,format,A,.)该语句将矩阵 A 及后面其他参数中数字的实部以 format 指定的格式写入到 fid 指定的文件中,返回写入数据的字节数。参数 format 由%开头,如下所示:(1)标记(flag),为可选部分;(2)宽度和精度指示,为可选部分;(3)转换字符,为必需部分。(1)标记:标记:用于控制输出的对齐方式,可以选择:-(负号)在参数左侧进行判别%-5.2d+(正号)在数字前添加符号%+5.2d空格在数字前插入空格%5.2d0在数字前插入 0%05.2d(2)宽度和精度指示:宽度和精度指示:可以通过数字指定输出数字的宽度及精度,格式为:%6f指定数字的宽度;%6.2f指定数字的宽度及精度;%.2f指定数字的精度。转换字符意义%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十六进制数(使用小写字母 af)%X十六进制数(使用大写字母 AF)(3)转换字符转换字符(4)转义符:转义符:转换字符用于指定输出的符号,可以选择的内容如表所示。转义符功能b退格f表格填充n换行符r回车ttab,反斜线 或,单引号%,百分号例:用 fprintf 函数在显示器上输出字符串。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.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函数将该文件中的数据读取到matlab中。fid=fopen(test.txt,rt)A=fscanf(fid,%d,3,4)fclose(fid)执行完这三条语句,数组A的内容是什么?3、文件位置指针、文件位置指针函 数说 明fseek设置文件位置指针到指定的位置ftell获取当前文件位置指针的位置feof判断当前的文件位置指针是否到达文件尾部frewind将文件位置指针返回到文件的起始位置当正确地打开文件并进行数据的读写时,MATLAB自动创建一个文件位置指针来管理和维护文件读写数据的起始位置。所以,在进行数据文件的读写时,需要通过某种手段来控制和判断当前文件位置指针,例如判断当前文件位置指针是否已经到达文件尾部,将文件位置指针移动到指定的位置,获取当前文件位置指针在文件中的位置以及将文件位置指针重置在文件的头部等。fid:指已经打开的数据文件。offset:是指移动文件指针的偏移量,若数值为正,则向文件尾部的方向移动文件位置指针,若数值为0则不移动文件位置指针,若数值为负则向文件头部的方面移动文件位置指针,offset的单位为字节数。origin:为字符串,代表文件指针的位置,有效值为bof,表示文件的头部,cof表示当前的文件指针位置,eof表示文件的尾部。函数的返回值status若为0则表示操作成功,否则为-1。错误的类型可以用ferror函数获取。status=fseek(fid,offset,origin)

    注意事项

    本文(文件输入输出.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开