《MATLAB编程与工程应用——第5章 MATLAB文件操作.ppt》由会员分享,可在线阅读,更多相关《MATLAB编程与工程应用——第5章 MATLAB文件操作.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5章 MATLAB文件操作第第5 5章章 MATLABMATLAB文件操作文件操作5.1 5.1 文件的打开与关闭文件的打开与关闭5.2 5.2 文件的读写操作文件的读写操作5.3 5.3 数据文件定位数据文件定位第5章 MATLAB文件操作5.1 5.1 文件的打开与关闭文件的打开与关闭一、文件的打开fid=fopen(fid=fopen(文件名,打开方式文件名,打开方式)其中文件名用字符串形式,表示待打开的数据文件。常见的打开方式有:r r表示对打开的文件读数据,w w表示对打开的文件写数据,a a表示在打开的文件末尾添加数据。fid用于存储文件句柄值,句柄值用来标识该数据文件,其他函数
2、可以利用它对该数据文件进行操作。文件数据格式有两种形式,一是二进制文件(二进制文件(b格式格式),二是文本文件文本文件(t格式格式)。在打开文件时需要进一步指定文件格式类型,即指定是二进制文件还是文本文件。第5章 MATLAB文件操作5.1 5.1 文件的打开与关闭文件的打开与关闭二、文件的关闭文件在进行完读、写等操作后,应及时关闭。关闭文件用fclose函数,调用格式为:sta=fclose(fid)sta=fclose(fid)函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回1。第5章 MATLAB文件操作5.2 5.2 文件的读写操作文件的读写操
3、作一、二进制文件的读写操作1 1读二进制文件读二进制文件fread 函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:A,COUNT=fread(fid,size,precision)A,COUNT=fread(fid,size,precision)A:读取的数据,COUNT:所读取的数据元素个数,第5章 MATLAB文件操作一、二进制文件的读写操作fid为文件句柄,size为可选项,若不选用则读取整个文件内容,若选用则它的值可以是下列值:N表示读取 N个元素到一个列向量。Inf表示读取整个文件。M,N表示读数据到MN的矩阵中,数据按列存放。precision代表读写数据的类型,常
4、用的有:uchar8位无符号字符int3232位整型数double64位浮点数第5章 MATLAB文件操作一、二进制文件的读写操作2 2写二进制文件写二进制文件fwrite 函数按照指定的数据类型将矩阵中的元素写入到文件中。其调用格式为:COUNT=fwrite(fid,A,precision)COUNT=fwrite(fid,A,precision)COUNT:所写的数据元素个数,Fid:文件句柄,A:存放写入文件的数据,Precision:用于控制所写数据的类型,其形式与fread函数相同。第5章 MATLAB文件操作一、二进制文件的读写操作【例例5.15.1】:建立一数据文件:建立一数据
5、文件magic5.datmagic5.dat,用于存放,用于存放5 5阶魔方阶魔方阵。阵。(exp4_1.m)fid=fopen(magic5.dat,w);cnt=fwrite(fid,magic(5),int32);fclose(fid);fid=fopen(magic5.dat,r);A,COUNT=fread(fid,5,5,int32);fclose(fid);第5章 MATLAB文件操作5.2 5.2 文件的读写操作文件的读写操作二、文本文件的读写操作二、文本文件的读写操作1 1读文本文件读文本文件A,COUNT=fscanf(fid,format,size)A,COUNT=fsc
6、anf(fid,format,size)A:存放读取的数据,COUNT:所读取的数据元素个数。fid:文件句柄。format:用以控制读取的数据格式,由%加上格式符组成,常见的格式符有d,f,c,s。size:可选项,决定矩阵A中数据的排列形式。与fread的size选项相同。第5章 MATLAB文件操作二、文本文件的读写操作二、文本文件的读写操作2 2写文本文件写文本文件COUNT=fprintf(fid,format,A)COUNT=fprintf(fid,format,A)fid:文件句柄format:数据写入文件的格式,与fscanf的格式相同A:要写入文件的数据。先按format指定
7、的格式将数据矩阵A格式化,然后写入到fid所指定的文件。第5章 MATLAB文件操作二、文本文件的读写操作二、文本文件的读写操作【例例5.25.2】:建立一文本文件:建立一文本文件magic5.txtmagic5.txt,用于存放,用于存放5 5阶魔方阶魔方阵。阵。(exp4_2.m)fid=fopen(magic5.txt,wt);fprintf(fid,%dt,magic(5);fclose(fid);fid=fopen(magic5.txt,rt);A,COUNT=fscanf(fid,%dt,5,5);fclose(fid);第5章 MATLAB文件操作5.3 5.3 数据文件定位数据
8、文件定位一、一、fseekfseek函数:定位文件位置指针函数:定位文件位置指针status=fseek(fid,offset,origin)status=fseek(fid,offset,origin)fid:文件句柄,offset:位置指针相对移动的字节数v0:向文件尾部移动v=0:不移动v0:向文件头部移动origin:位置指针移动的参照位置。v-1:文件头v0:当前位置v1:文件尾status:若定位成功,返回0,否则返回1。第5章 MATLAB文件操作5.3 5.3 数据文件定位数据文件定位二、ftell函数ftell函数返回文件指针的当前位置,其调用格式为:position=ftell(fid)position=ftell(fid)position:从文件开始到指针当前位置的字节数。若position值为1表示获取文件当前位置失败。第5章 MATLAB文件操作5.3 5.3 数据文件定位数据文件定位【例例5.35.3】:从:从magic5.datmagic5.dat中读取第中读取第6 6个数。个数。(exp4_3.m)n=6;%读取第6个元素,即第一行第二列的元素fid=fopen(magic5.dat,r);fseek(fid,(n-1)*4,-1);A,COUNT=fread(fid,1,int32);fclose(fid);