您的位置:首页 > 编程语言 > MATLAB

matlab的文件操作及读txt文件

2009-07-14 19:57 369 查看
matlab文件操作及读txt文件

函数名    功能描述    函数名    功能描述
      fclose    关闭文件    feof    文件结尾检测
      fopen    打开文件    ferror    文件I/O错误查询
      fread    读二进制流文件    frewind    文件指针回绕
      fwrite    写二进制流文件    fseek    设置文件指针位置
      fgetl    读文本文件(无行结束符)    ftell    获得文件指针位置
      fgets    读文本文件(含行结束符)    sprintf    格式化数据转换为字符串
      fprintf    写格式化数据到文件    sscanf    依数据格式化读取字符串
      fscanf    从文件读格式化数据         
特殊文件输入输出
       函数名    功能描述    函数名    功能描述
       imfinfo    获得图形文件信息    wklread    读一Lotus123WK1数据表
       imread    图像的文件读取    wklwrite    将一矩阵写入Lotus123WK1数据表文件
       imwrite    图像的文件保存    xlgetrange    读Excel表格文件的数据
       qrwrite    保存一段QuickTime电影文件    xlsetrange    写Excel文件



matlab文件操作
文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。
1、文件的打开与关闭
1)打开文件
在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为:
fid=fopen(文件名,‘打开方式’)
说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下:
?      ‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
?      ‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。
?      ‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。
?      ‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。
?      ‘a’:在打开的文件末端添加数据。文件不存在则创建。
?      ‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
2)关闭文件
文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为:
sta=fclose(fid)
说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(‘all’)。



2、二进制文件的读写操作
1)写二进制文件
fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:
COUNT=fwrite(fid,A,precision)
说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。
例6.8 将一个二进制矩阵存入磁盘文件中。
>> a=[1 2 3 4 5 6 7 8 9];
>> fid=fopen('d: est.bin','wb')   %以二进制数据写入方式打开文件
fid =
  3           %其值大于0,表示打开成功
>> fwrite(fid,a,'double')
ans =
  9           %表示写入了9个数据
>> fclose(fid)
ans =        
  0           %表示关闭成功
2)读二进制文件
fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:
[A,COUNT]=fread(fid,size,precision)
说明:其中A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用则它的值可以是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。



3、文本文件的读写操作
1)读文本文件
fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:
[A,COUNT]=fscanf(fid,format,size)
说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。size为可选项,决定矩阵A中数据的排列形式,它可以取下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。
2)写文本文件
fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:
fprintf(fid,format,A)
说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。
例6.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]);
%把
9078
文件号1的数据读到f中。其中f是[12 90]的矩阵
%这里'%f %f'表示读取数据的形势,他是按原始数据型读出
fclose(fid);
%关闭文件
另外有的txt文件还可以用load来打开
其语句为
f=load('fx.txt)
我个人觉得用第一种方式较好。因为有些时候,特别是fx.txt 的一行种有多个数据时用load
就比较麻烦了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息