MATLAB第4章MATLAB操作.ppt
第第4章章 MATLAB文件操作文件操作4.1 文件的打开与关闭文件的打开与关闭4.2 文件的读写操作文件的读写操作4.3 数据文件定位数据文件定位4.1 文件的打开与关闭文件的打开与关闭4.1.1 文件的打开文件的打开fopen函数的调用格式为:函数的调用格式为:fid=fopen(文件名,打开方式文件名,打开方式)其中文件名用字符串形式,表示待打开的数据文其中文件名用字符串形式,表示待打开的数据文件。常见的打开方式有:件。常见的打开方式有:r表示对打开的文件表示对打开的文件读数据,读数据,w表示对打开的文件写数据,表示对打开的文件写数据,a表示在打开的文件末尾添加数据。表示在打开的文件末尾添加数据。fid用于存储文件句柄值,句柄值用来标识该数据用于存储文件句柄值,句柄值用来标识该数据文件,其他函数可以利用它对该数据文件进行操文件,其他函数可以利用它对该数据文件进行操作。作。文件数据格式有两种形式,一是二进制文件,二是文件数据格式有两种形式,一是二进制文件,二是文本文件。在打开文件时需要进一步指定文件格文本文件。在打开文件时需要进一步指定文件格式类型,即指定是二进制文件还是文本文件。式类型,即指定是二进制文件还是文本文件。4.1.2 文件的关闭文件的关闭文件在进行完读、写等操作后,应及时关闭。关文件在进行完读、写等操作后,应及时关闭。关闭文件用闭文件用fclose函数,调用格式为:函数,调用格式为:sta=fclose(fid)该函数关闭该函数关闭fid所表示的文件。所表示的文件。sta表示关闭文件操表示关闭文件操作的返回代码,若关闭成功,返回作的返回代码,若关闭成功,返回0,否则返回,否则返回1。4.2 文件的读写操作文件的读写操作 4.2.1 二进制文件的读写操作二进制文件的读写操作1读二进制文件读二进制文件fread 函数可以读取二进制文件的数据,并将数据函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:存入矩阵。其调用格式为:A,COUNT=fread(fid,size,precision)其中其中A用于存放读取的数据,用于存放读取的数据,COUNT返回所读取返回所读取的数据元素个数,的数据元素个数,fid为文件句柄,为文件句柄,size为可选项,为可选项,若不选用则读取整个文件内容,若选用则它的值若不选用则读取整个文件内容,若选用则它的值可以是下列值:可以是下列值:(1)N表示读取表示读取 N个元素到一个列向量。个元素到一个列向量。(2)Inf表示读取整个文件。表示读取整个文件。(3)M,N表示读数据到表示读数据到MN的矩阵中,数据按列的矩阵中,数据按列存放。存放。precision代表读写数据的类型代表读写数据的类型2写二进制文件写二进制文件fwrite 函数按照指定的数据类型将矩阵中的元素函数按照指定的数据类型将矩阵中的元素写入到文件中。其调用格式为:写入到文件中。其调用格式为:COUNT=fwrite(fid,A,precision)其中其中COUNT返回所写的数据元素个数,返回所写的数据元素个数,fid为文为文件句柄,件句柄,A用来存放写入文件的数据,用来存放写入文件的数据,precision用用于控制所写数据的类型,其形式与于控制所写数据的类型,其形式与fread函数相同。函数相同。例例4-1 建立一数据文件建立一数据文件magic5.dat,用于存放,用于存放5阶魔方阵。阶魔方阵。程序如下:程序如下:fid=fopen(magic5.dat,w);cnt=fwrite(fid,magic(5),int32);fclose(fid);fid=fopen(magic5.dat,r);B,cnt=fread(fid,5,inf,int32);fclose(fid);4.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:0.1:1;y=x;exp(x);fid=fopen(exp.txt,w);fprintf(fid,%6.2f%12.8fn,y);fclose(fid);4.3 数据文件定位数据文件定位MATLAB提供了与文件定位操作有关的函数提供了与文件定位操作有关的函数fseek和和ftell。fseek函数用于定位文件位置指针,函数用于定位文件位置指针,其调用格式为:其调用格式为:status=fseek(fid,offset,origin)其中其中fid为文件句柄,为文件句柄,offset表示位置指针相对移表示位置指针相对移动的字节数,动的字节数,origin表示位置指针移动的参照表示位置指针移动的参照位置。若定位成功,位置。若定位成功,status返回值为返回值为0,否则返,否则返回值为回值为1。ftell函数返回文件指针的当前位置,其调用格式为:函数返回文件指针的当前位置,其调用格式为:position=ftell(fid)返回值为从文件开始到指针当前位置的字节数。返回值为从文件开始到指针当前位置的字节数。若返回值为若返回值为1表示获取文件当前位置失败。表示获取文件当前位置失败。