收藏 分享(赏)

MATLAB文件各种操作方法(全).doc

上传人:幼儿教育老师 文档编号:21759131 上传时间:2024-04-22 格式:DOC 页数:7 大小:72KB
下载 相关 举报
MATLAB文件各种操作方法(全).doc_第1页
第1页 / 共7页
MATLAB文件各种操作方法(全).doc_第2页
第2页 / 共7页
MATLAB文件各种操作方法(全).doc_第3页
第3页 / 共7页
MATLAB文件各种操作方法(全).doc_第4页
第4页 / 共7页
MATLAB文件各种操作方法(全).doc_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、1.1 文件的打开和关闭1.1.1 文件的打开fopen (filename, mode)mode格式有:r:只读方式打开文件(默认的方式),该文件必须已存在。r+:读写方式打开文件,打开后先读后写。该文件必须已存在。w:打开后写入数据。该文件已存在则更新;不存在则创建。w+:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。a:在打开的文件末端添加数据。文件不存在则创建。a+:打开文件后,先读入数据再添加数据。文件不存在则创建。如果rt表示该文件以文本方式打开,如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。Fopen函数两个返回值:1、 一个是返回一

2、个文件标识(file Identifier),它会作为参数被传入其他对文件进行读写操作的命令,通常是一个非负的整数,可用此标识来对此文件进行各种处理。(如果返回的文件标识是1,则代表fopen无法打开文件,其原因可能是文件不存在,或是用户无法打开此文件权限);2、 另一个返回值就是message,用于返回无法打开文件的原因;例:1-1f,message=fopen(fileexam1, r)if f=-1disp(message); %显示错误信息end(若文件fileexam1不存在,则显示如下信息。Cannot open file.existence?permissions?memory?

3、)例:1-2f,message=fopen(fileexam2, r);if f=-1disp (message); %显示错误信息 else disp(f);end若文件fileexam2存在,则返回f值。1.1.2文件的关闭Fclose(f)F为打开文件的标志,若若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为1,则表示无法成功关闭该文件。(打开和关闭文件比较耗时,最好不要在循环体内使用文件)若要一次关闭打开的所有文件,可以使用下面的命令:fclose all1.2 文 本 数 据MATLAB自带的MAT文件为二进制文件,但为了便于和外部程序进行交换以及方便查看文件中的

4、数据,也常常采用文本数据格式(数据采用ASCII码格式,可以表示字母和数字字符)与外界进行数据交换。1.2.1 从文本文件中读取数据1、 使用导入模板来读取数据2、 使用函数来读取文本数据函 数csvreaddlmreadfscanfloadtextread数 据 类 型数值数据数值数据字母和数值数值数据字母和数值分 隔 符仅cooma任何字符任何字符仅space任何字符返 回 值1111多返回值如:A=load(my_data.txt);3、 读取有分隔符的ASCII数据文件如果数据文件不使用空格符而是使用逗号或是其他符号作为分隔符,用户可以选择多个可用的导入数据函数。最简单的便是使用函数d

5、lmread。例2-1lcode.dat0.3445,0.8433,0.78650.7562,0.4233,0A=dlmread(lcode.dat,)(分隔符只能选取单个字符,不能用字符串来作为分隔符)4. 使用文本头读取数值数据要读取一个包含文本头的ASCII码数据文件,可以使用textread函数,并指定头行参数。Textread既能处理有固定格式的文件,也可以处理无格式的文件,还可以对文件中每行数据按列逐个读取。textread函数常见的调用方法有如下几种:A,B,C.=textread(filename, format)A,B,C.=textread(filename, format

6、,N)例2-2num1 num2 num3 num40.3242 0.4324 0.3455 0.67540.4566 0.9368 0.9892 0.92740.4658 0.2832 0.9373 0.8233因为有文件头,要使用如下textread命令来读取文件中的数据。 num1 num2 num3 num4=textread(my_data.txt,%f %f %f %f,headerlines,1)执行结果如下:num1 = 0.3242 0.4566 0.4658num2 = 0.4324 0.9368 0.2832num3 = 0.3455 0.9892 0.9373num4

7、= 0.6754 0.9274 0.82335. 读取字母数值混合的数据例2-3文件my_exam.dat包含的混合的字母和数值如下:Joe gradeA 4.9 passsusan gradeD 2.0 fail如果想把4列数据全部读取出放在4个变量中,则使用如下命令: name gra grades answer=textread(my_exam.dat,%s %s %f %s)(textread 函数按格式字符串中指定的格式处理文件中的某个数据项,并把值放在输出变量中。输出变量的数目必须和格式字符串中指定的变换数目项匹配,在该例中,函数按格式字符串来读取文件)若文件采用的分隔符不是空格,

8、则必须使用函数textread ,将该分隔符作为它的参数。例如,若文件my_exam.dat 使用分号作为分隔符,则读入该文件需使用如下命令:name gra grades ans=textread(my_exam.dat,%s %s %f %s, delimiter, ; )2 文件的存储2.1 文件存写函数函 数csvwritediarydlmwritefprintfsave数 据 类 型数值数据数值数据或单元阵列数值数据字母和数值数据数值数据分 隔 符逗号空格任何字符任何字符制表符或空格符1. 存写有分隔符的ASCII码数据文件若要将当前的MATLAB工作空间的一个或多个变量写到一个有分

9、隔符的ASCII码文件中,可以使用save命令或dlmwrite函数。在默认情况下,save命令是以 MAT 格式存写数据的。例 3-1 clear all; x=rand(2,3); save my_test1.dat x -ascii;结果为:9.2181297e-001 1.7626614e-001 9.3546970e-001 7.3820725e-001 4.0570621e-001 9.1690444e-0012.2 使用文件I/O函数2.2.1格式化写入文本数据例3-2创建一个22的魔方矩阵,然后打开一文件,写入数据。 clear all; x=magic(2); fid=fop

10、en(exam4.txt,w); fprintf(fid,%4.2f %8.4fn,x); fclose(fid); xx = 1 3 4 2 type exam4.txt1.00 4.00003.00 2.0000(fprintf函数存储的时候按行读取,然后按列存写)2.2.2 控制文件位置指针Fseek frewind设定指针位置 重设指针到文件起始位置Ftell feof获得指针位置 测试指针是否在文件结束位置1、fseek函数用法fseek 函数用于指定文件指针的位置,调用方式如下:status=fseek(fid,offset,origin)fid是指定的文件标识符。offset为整

11、数型变量,表示相对于指定位置需要的偏移字节数,正数表示向文件末尾偏移,负数表示向文件开头偏移。Origin可以是特定字符串,也可以是整数,表示文件中的参考位置。参考位置说明:bof 或者 -1 文件开头 cof 或者 0 文件中当前位置eof 或者 1 文件末尾2、 ftell函数用法ftell 函数用来获得当前文件指针的位置,调用方式如下:position=ftell(fid)fid是指定的文件标识符。Position为返回值,表示当前指针的位置。position是以相对于文件开头的字节数来表示的。如果返回值为1,表示未能成功调用。这是可以通过调用feeeor(fid)的具体的错误信息。3、

12、 frewind函数用法frewind 函数用来把文件指针重新复位到文件开头。调用方式如下:frewind(fid)其中fid为指定的文件标识符,其作用和fseek(fid,0,-1)是等效的。4、feof函数用法feof 函数用来判断是否到达文件末尾。调用方式如下:eofstat=feof(fid)其中fid为指定的文件标识符。eofstat是返回值,当到达文件末尾时,eofstat为1;否则为0。例3-3f=fopen(my_test.dat,r); A=fscanf(f,%g,4 2)A = 0.4565 0.4447 0.8214 0.7919 0.6154 0 0.0185 0feo

13、f(f)ans= 1%c读取字符型变量,也可以指定多个字符,%3c%s读取字符串变量%d读取整数型变量%f读取浮点数%g读取双精度浮点数3、fprintf函数功能fprintf(fileID, format, A) count = fprintf(.) fprintf写入返回数字的字节。1、 Format:使用单引号的字符串,它描述了输出字段的格式。可以包括下列组合:百分号后跟一个转换字符,如s的为字符串。(1)转义字符单引号 百分比字符 反斜杠 1 报警 book.iLoveM b退格 f换页n新行回车 t水平制表符 v 垂直制表xN十六进制数N N八进制数N (2)数值类型字符(3)字段宽

14、度最小的字符数进行打印。可以是一个数字或一个星号(*)是指输入列表中的一个论据。例如,输入列表(12d,intmax)相当于(* D,12,intmax)。精确宽度 For %f, %e, or %E:例如:6.4f打印为3.1416圆周率For %g or %G 数位有效数字。例如:6.4G打印为PI 3.142 (3) 标志 行动标志 例子左对齐 %-5.2f 打印符号字符(+或 - )。 + Simulink与信号处理%+5.2f 插入前的价值空间。 % 5.2f 垫零0 %05.2f 修改选定的数字转换:%o, %x, or %X,打印0,为0x或0X的前缀。 %f, %e, or %E,,打印精度小数点,即使是0。 为g或G号,请不要删除或尾随零小数点。 # %#5.0f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报