您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > matlab对文件目录操作及读写文件
Matlab对路径的操作及读写文件Matlab在数学运算方面有着强大的功能,同时在程序编写方面也有一定的优势。Matlab可用作函数、脚本、封装成类,同时提供了与常用编程语言的接口。这时,matlab对文件目录和文件的操作有着重要的作用。一、matlab对路径的操作1、filesep用于返回当前平台的目录分隔符,Windows是反斜杠(\),Linux是斜杠(/)。2、fullfile用于将若干字符串连接成一个完整的路径。例如:f=fullfile('D:','Matlab','example.txt')f=D:\Matlab\example.txt(在Windows中,“D:\”表示D盘,“D:”表示目录)3、fileparts用于将一个完整的文件名分割成4部分:路径,文件名,扩展名,版本号。例如:f=fullfile('D:','Matlab','example.txt');[pathstr,name,ext,versn]=fileparts(f)pathstr=D:\Matlabname=exampleext=.txtversn=’’4、pathsep返回当前平台的路径分隔符。Windows是分号(;),Linux是冒号(:)。5、exist可以用于判断目录或者文件是否存在,同时不同的返回值有不同的含义。例如:f=fullfile('D:','Matlab','example.txt');exist(f)ans=2exist('D:\Matlab')ans=76、which可以通过一个函数或脚本名称得到它的完整路径,同时还能处理函数重载的情况,例如:whichabs(0)C:\MATLAB7\toolbox\matlab\elfun\@double\abs.bi%doublemethodwhichabs(single(0))C:\MATLAB7\toolbox\matlab\elfun\@single\abs.bi%singlemethod7、isdir判断一个路径是否代表了一个目录,例如:p='D:\Matlab';f=fullfile(p,'example.txt');isp=isdir(p)isp=1isf=isdir(f)isf=08、dir用于列出一个目录的内容,返回值为结构体数组类型,包含如下部分:name:文件或目录的名称;date:修改日期;bytes:文件大小;isdir:是否是目录。例如:p='D:\Matlab';files=dir(p)files=8x1structarraywithfields:namedatebytesisdir9、cd用于切换当前工作目录。例如:cd('c:/toolbox/matlab/demos')%切换当前工作目录到demoscd..%切换当前工作目录到matlab10、pwd用于当前工作目录的路径。例如:pwdans=C:\MATLAB7\work11、path用于对搜索路径的操作。例如:path%查询当前所有的搜索路径(MATLABPATH)p=path%把当前的搜索路径存在字符串变量p中path(‘newpath’)%将当前搜索路径设置为newpathpath(path,’newpath’)%向路径添加一个新目录newpathpath(’newpath’,path)%向当前搜索路径预加一个新目录nespath12、addpath和rmpath用于对matlab搜索路径的添加和删除。例如:addpath(‘directory’)%将完整路径directory加入到当前搜索路径的最顶端rmpath13、what用于显示出某目录下存在哪些matlab文件;若输入完整路径,可列出指定目录下的文件。例如:whatwhatdirnamewhat(‘dirname’)其中dirname是要查找的路径的名字,路径在matlab的搜索路径内时,没有必要输入全名,只输入最后或最后两级就够了。14、path2rc保存当前matlab的搜索路径到pathdef.m文件中。二、matlab对文件的操作1、fopen打开文件或者得到文件打开的信息。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f);%打开文件,fid=-1表示打开文件失败;fid=1表示输出stdout;fid=2表示错误信息文件;fid=其他正数表示文件打开成功,并返回文件编号。(fid=1,2不需打开)fid=fopen(f,’r’);%以读(r)的方式打开文件;打开方式有:r,w,a,r+,w+,a+,A,W[fid,message]=fopen(filename,mode,machineformat)2、fclose关闭一个或者多个文件。例如:fclose(fid)fclose(‘all’)3、load可用于读数值型文件,并且无须打开文件,但是要求文件中的内容所有行的列数相同。例如:f=fullfile('D:','Matlab','example.txt');A=load(f)%返回以f为路径的文件的内容4、fread用于读取文件中的内容,需要和fopen,fclose配合使用,返回的是ASCII码,可以指定返回字节数和返回的格式。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'r');a=fread(fid);%读取文件全部内容,返回的是每个字节的ASCII码b=fread(fid,5);%读取文件中的前5个字符返回的是这5个字节的ASCII码c=fread(fid,5,'uint8=char');%读取文件中前5个字符并以字符char格式返回d=fread(fid,’*char’);%读取文件中全部内容并以字符串的格式返回(a,b,c,d每句是一个单独语句与其他语句无关)e1=fread(fid,5,’*char’);%读取文件中前5个字符并以字符串的格式返回e2=fread(fid,8,’*char’);%读取fid指向位置开始后面的8个字符并以字符串的格式返回(e2与e1一起使用时)fclose(fid)5、fscanf用于读取文件中指定格式的内容,需要和fopen,fclose配合使用,可以指定读取的字节数,返回的内容存放到一个一维数组中。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'r');a=fscanf(fid,’%d’);%读取文件中的所有数字,返回到数组a中[a,count]=fscanf(fid,’%d’,5);%读取文件中fid指向位置开始后面的5个数字,返回到数组a中,count返回a的大小,count=5(返回的数字个数可能小于要求读取的个数)fclose(fid)6、fgetl用于读取文件中一行内容,不包括换行符,需要和fopen,fclose配合使用。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'r');tline=fgetl(fid);%从文件中读取fid指向的一行内容fclose(fid)7、fgets用于读取文件中一行内容,包括换行符,需要和fopen,fclose配合使用。(只能用于文本文件)例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'r');tline=fgets(fid);%返回文件标识符指向的一行tline=fgets(fid,nchar);%返回文件标识符指向的一行的最多nchar个任何字符fclose(fid)8、fwrite用于将二进制数据写入文件中,需要和fopen,fclose配合使用。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'wb');fwrite(fid,magic(5),'integer*4');%创建一个二进制文件,由25个4位integer类型的元素组成的5*5的矩阵fclose(fid)9、fprintf用于将指定格式数据写入到文件中,需要和fopen,fclose配合使用。例如:x=0:.1:1;%从0到1以0.1为单位建立一个矩阵y=[x;exp(x)];f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'w');fprintf(fid,'%6.2f%12.8f\n',y);%将矩阵y写入文件中,规定了写入格式fclose(fid)10、fseek用于对文件指针位置的设定,需要和fopen,fclose配合使用。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'r');fseek(fid,19,'bof');A=fscanf(fid,’%d’,5);fclose(fid)11、ftell用于得到文件指针位置,需要和fopen,fclose配合使用。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'r');fseek(fid,0,’eof’);position=ftell(fid);fclose(fid)12、ferror用于查询关于文件错误的输入或者输出,需要和fopen,fclose配合使用。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'r');message1=ferror(fid);%返回错误信息message2=ferror(fid,’clear’)%返回错误信息并清空fclose(fid)13、feof用于判断是不是文件末尾,需要和fopen,fclose配合使用。例如:f=fullfile('D:','Matlab','example.txt');fid=fopen(f,'r');while~feof(fid)tline=fgetl(fid);printf(tline);endfclose(fid)三、。。四、
本文标题:matlab对文件目录操作及读写文件
链接地址:https://www.777doc.com/doc-4991813 .html