Matlab中txt文件的读写操作命令及操作

上传人:ji****72 文档编号:37523007 上传时间:2018-04-17 格式:DOC 页数:23 大小:118.50KB
返回 下载 相关 举报
Matlab中txt文件的读写操作命令及操作_第1页
第1页 / 共23页
Matlab中txt文件的读写操作命令及操作_第2页
第2页 / 共23页
Matlab中txt文件的读写操作命令及操作_第3页
第3页 / 共23页
Matlab中txt文件的读写操作命令及操作_第4页
第4页 / 共23页
Matlab中txt文件的读写操作命令及操作_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《Matlab中txt文件的读写操作命令及操作》由会员分享,可在线阅读,更多相关《Matlab中txt文件的读写操作命令及操作(23页珍藏版)》请在金锄头文库上搜索。

1、Matlab 中中 txt 文件的读写操作命令整理文件的读写操作命令整理将 txt 文件中的数据按行显示输出内容:从一个列向量文件中按要求读取指定部分数据后存储成另一个文件。 clear; clc; close all;%k=1:.1:50;%save org_di.txt k -ascii; %用save格式受限制fid=fopen(org_di.txt); %原始数据是单列多行%temp=fread(fid); %用fread法读出的数据有问题,类似32,43等 temp=fscanf(fid,%f);%temp=load (org_di.txt); %n=length(temp); m=

2、5;for k=1:2m %指定保存前面部分内容temp1(k)=temp(k); end% save org_di2.txt -ascii temp1; fclose(fid);fid=fopen(org_di2.txt,w);fprintf(fid,%f rn,temp1(1,:); %若直接用temp1,则依然是多行单列,并没有在每行后面加回车换行 ,只是在最后加的回车换行。可以直接用temp1 fclose(fid);文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数 据文件。MATLAB 提供了一系列低层输入输出函数,专门用于文件操作。1、文件的打开与关闭1) 打开

3、文件 fopen在读写文件之前,必须先用 fopen 函数打开或创建文件,并指定对该文件进行 的操作方式。fopen 函数的调用格式为:fid=fopen(文件名,打开方式)说明:其中 fid 用于存储文件句柄值,如果返回的句柄值大于 0,则说明文件 打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如 下:r :只读方式打开文件(默认的方式),该文件必须已存在。r+:读写方式打开文件,打开后先读后写。该文件必须已存在。w :打开后写入数据。该文件已存在则更新;不存在则创建。w+:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。a :在打开的文件末端添加数据。文件

4、不存在则创建。a+:打开文件后,先读入数据再添加数据。文件不存在则创建。另外,在这些字符串后添加一个“t”“t”,如rt或wt+,则将该文件以文以文 本方式打开本方式打开;如果添加的是“b”“b”,则以二进制格式打开,则以二进制格式打开,这也是 fopen 函数默 认的打开方式。2) 关闭文件文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用 fclose 函数,调用格式为:stafclose(fid)说明:该函数关闭 fid 所表示的文件。sta 表示关闭文件操作的返回代码,若 关闭成功,返回 0,否则返回-1。如果要关闭所有已打开的文件用 fclose(all)。2、二进制文

5、件二进制文件的读写操作1) 写二进制文件写二进制文件fwritefwrite 函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:COUNTfwrite(fid,A,precision)说明:其中 COUNT 返回所写的数据元素个数(可缺省),fid 为文件句柄,A 用 来存放写入文件的数据变量,precision 代表数据精度,常用的数据精度有: char、uchar、int、long、float、double 等。缺省数据精度为 uchar,即无符 号字符格式。示例:将一个二进制矩阵存入磁盘文件中。 a=1 2 3 4 5 6 7 8 9; fid=fopen(d:test.b

6、in,wb) %以二进制数据写入方式打开文件fid =3 %其值大于 0,表示打开成功 fwrite(fid,a,double)ans =9 %表示写入了 9 个数据 fclose(fid)ans =0 %表示关闭成功2) 读二进制文件读二进制文件freadfread 函数函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:A,COUNT=fread(fid,size,precision)说明:其中 A 是用于存放读取数据的矩阵、COUNT 是返回所读取的数据元素个 数、fid 为文件句柄、size 为可选项,若不选用则读取整个文件内容;若选用 则它的值可以是下列值:N(读取 N 个

7、元素到一个列向量)、inf(读取整个文 件)、M,N(读数据到 MN 的矩阵中,数据按列存放)。 precision 用于 控制所写数据的精度,其形式与 fwrite 函数相同。3、文本文件文本文件的读写操作1) 读读文本文件fscanffscanf 函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:A,COUNT=fscanf(fid,format,size)说明:其中 A 用来存放读取的数据,COUNT 返回所读取的数据元素个数,fid 为 文件句柄,format 用来控制读取的数据格式,由%加上格式符组成,常见的格 式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符

8、型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。size 为可 选项,决定矩阵 A 中数据的排列形式,它可以取下列值:N(读取 N 个元素到一 个列向量)、inf(读取整个文件)、M,N(读数据到 MN 的矩阵中,数据 按列存放)。2) 写写文本文件fprintf 函数可以将数据按指定格式写入到文本文件中。其调用格式为:fprintf(fid,format,A)说明:fid 为文件句柄,指定要写入数据的文件,format 是用来控制所写数据 格式的格式符,与 fscanf 函数相同,A 是用来存放数据的矩阵或变量。例 6.9 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩

9、阵。 a=string; fid=fopen(d:char1.txt,w); fprintf(fid,%s,a); fclose(fid); fid1=fopen(d:char1.txt,rt); fid1=fopen(d:char1.txt,rt); b=fscanf(fid1,%s)b = string示例:Matlab 读 txt 文件fid=fopen(fx.txt,r); %得到文件号f,count=fscanf(fid,%f %f,12,90); %把文件号 1 的数据读到 f 中。其中 f 是12 90的矩阵%这里%f %f表示读取数据的形势,他是按原始数据型读出fclose(f

10、id); %关闭文件另外有的 txt 文件还可以用 load 来打开,其语句为f=load(fx.txt)load 方法最简单,但个人觉得用第一种方式较好。因为有些时候,特别是 fx.txt 的一行中有多个数据时用 load 就比较麻烦了。PS:数据文件定位MATLAB 提供了与文件定位操作有关的函数 fseek 和 ftell。fseek 函数用于定 位文件位置指针,其调用格式为:status=fseek(fid, offset, origin)其中 fid 为文件句柄,offset 表示位置指针相对移动的字节数,OFFSET values are interpreted as follow

11、s: 0 Move toward the end of the file.= 0 Do not change position. ftell(FID)ans =10 fseek(FID,-10,1)ans =0 ftell(FID)ans =2180文件指针可以移动到当前文件末尾的后面,但不能移动到开头的前面;当把指 针移动到文件末尾后面时,若关闭文件则文件大小会自动增长到文件指针所指 的大小,用这种方法可以很容易创建一个很大的文件,当然新增加的文件内容 是随机的。MATLAB 混合编程中的数据交流MATLAB 提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据, 又叫导入数据;将

12、工作空间的变量存储到磁盘文件中称为存写数据,又叫导出 数据。至于选择哪种机制,则根据下面两个因素决定: 用户所执行的操作是导入数据还是导出数据; 数据的格式为文本格式、二进制格式还是如 HDF 之类的标准格式。 将数据导入 MATLAB 中最容易的方法就是使用导入数据模板(Import Wizard), 使用该模板时不需要知道数据的格式,只需指定包含这些数据的文件,然后导 入模板会自动处理文件内容。 本章重点内容如下: 文件的打开和关闭 文本文件的读取 存写 ASCII 数据 二进制数据的读取 二进制数据的存写 使用 I/O 文件函数进行数据读写 MAT 文件的读写2.1 文件的打开和关闭 2

13、.1.1 文件的打开 无论是要读写 ASCII 码文件还是二进制文件,都必须先用 fopen 函数将其打开, 在默认情况下,fopen 以二进制格式打开文件,它的使用语法如下:fopen (filename, mode) 其中 filename 表示要读写的文件名称,mode 则表示要对文件进行的处理方式, 可以是表 2-1 中的任一字符串。 表 2-1 文本文件打开的模式 Mode 意义: rt 以只读方式(Reading)打开文件 wt 以只写方式(Writing)打开文件 at 以追加方式(Appending)打开文件,新内容将从原文件后面续写 r+t 以同时读写方式打开文件 w+t 以

14、同时读写创建文件,原文件内容被清除a+t 以同时读和追加(Reading and Appdending)方式,原文件内容 被保留,新内容将从原文件的后面开始 At 以读写方式打开或创建文件,适用于对磁带介质文件的操作 Wt 以写入方式打开或创建文件,原文件内容被清除,适用于磁带 介质文件的操作fopen 函数有两个返回值,一个是返回一个文件标志(file Identifier),它会 作为参数被传入其他对文件进行读写操作的命令,通常是一个非负的整数,可 用此标识来对此文件进行各种处理。如果返回的文件标识是1,则代表 fopen 无法打开文件,其原因可能是文件不存在,或是用户无法打开此文件权限。

15、另 一个返回值就是 message,用于返回无法打开文件的原因。为了安全起见,最 好在每次使用 fopen 函数时,都测试其返回值是否为有效值。 下面以脚本 m 文件为例来声明文件的打开。 例 2-1 %exam1.m f,message=fopen(fileexam1, r) if f=-1 disp (message); %显示错误信息 end 若文件 fileexam1 不存在,则显示如下信息。 Cannot open file.existence?permissions?memory?.例 2-2 %exam2.m f,message=fopen(fileexam2, r); if f=-1 disp (message); %显示错误信息elsedisp(f); end 若文件 fileexam2 存在,则返回 f 值。 2.1.2 文件的关闭 一旦完成文件的读写,最好关闭文件,以便对其进行其他操作。这时就可以使 用 fclose 函数来关闭文件,其适用语法如下。 fclose(f) 其中 f 为打开文件的标志,若 fclose 函数返回值为 0,则表示成功关闭

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

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号