第03章 MATLAB文件操作第03章 MATLAB文件操作.ppt

第03章 MATLAB文件操作第03章 MATLAB文件操作.ppt

第03章 MATLAB文件操作第03章 MATLAB文件操作

第3章 MATLAB文件操作 3.1 文件的打开与关闭 3.2 文件的读写操作 3.3 数据文件定位 3.1 文件的打开与关闭 3.1.1 文件的打开 fopen函数的调用格式为: fid= fopen(文件名,打开方式) 文件名:待打开的数据文件; 打开方式:‘r’读文件,‘w’写文件,‘a’末尾追加数据; fid:文件句柄值,用来标识该数据文件,其他函数可以利用它对该数据文件进行操作。 文件数据格式有两种形式: 二进制文件(缺省格式) 文本文件(ASCII码) 3.1.2 文件的关闭 文件在进行完读、写等操作后,应及时关闭。关闭文件用fclose函数,调用格式为: sta=fclose(fid) 该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回–1。 3.2 文件的读写操作 3.2.1 二进制文件的读写操作 1.读二进制文件 fread 函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为: [A,COUNT]=fread(fid,size, precision) 其中A用于存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,size为可选项,若不选用则读取整个文件内容,若选用则它的值可以是下列值: (1) N表示读取 N个元素到一个列向量。 (2) Inf表示读取整个文件。 (3) [M,N]表示读数据到M×N的矩阵中,数据按列存放。 precision代表读写数据的类型 2.写二进制文件 fwrite 函数按照指定的数据类型将矩阵中的元素写入到文件中。其调用格式为: COUNT=fwrite (fid, A, precision) 其中COUNT返回所写的数据元素个数,fid为文件句柄,A用来存放写入文件的数据,precision用于控制所写数据的类型,其形式与fread函数相同。 例3-1 建立一数据文件magic5.dat,用于存放5阶魔方阵。 程序如下: fid=fopen(‘magic5.dat’,‘w’); cnt=fwrite(fid,magic(5),‘int32’); fclose(fid); fid=fopen(‘magic5.dat’,‘r’); [A,cnt]=fread(fid,‘int32’); fclose(fid); 3.2.2 文本文件的读写操作 1.读文本文件 fscanf 函数的调用格式为: [A,COUNT]= fscanf (fid, format, size) 其中A用以存放读取的数据,COUNT返回所读取的数据元素个数。fid为文件句柄。format用以控制读取的数据格式,由%加上格式符组成,常见的格式符有d,f,c,s。 size为可选项,决定矩阵A中数据的排列形式。 2.写文本文件 fprintf 函数的调用格式为: COUNT= fprintf(fid, format, A) 其中A存放要写入文件的数据。先按format指定的格式将数据矩阵A格式化,然后写入到fid所指定的文件。格式符与fscanf函数相同。 x = 0:.2:1; y = [x; exp(x)]; fid = fopen(exp.txt,w); fprintf(fid,%6.2f %12.8f\n,y); fclose(fid) fid=fopen(magic5.dat,w); fprintf(fid,%6.2f, magic(5)); fclose(fid); 例3-2 比较文本格式和二进制格式I/O读写时间 num = 100; % Loop for 100 times out_array = randn(1,10000); % Binary format output operation. tic; % Reset timer for ii = 1:num [fid,msg] = fopen(unformatted.dat,w); count = fwrite(fid,out_array,float64); status = fclose(fid); end fprintf (Binary file = %6.3f\n,toc); % ASCII format output operation. tic; % Reset timer for ii = 1:num [fid,msg] = fopen(formatted.dat,wt); count = fprintf(fid,%23.15e\n,out_array); status = fclose(fid); end fprintf (ASCII file = %6.3f\n,toc); 将随机

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档