1.matlab中处理路径和文件名,主要用到2个函数。
[pathstr,name,ext,versn]=fileparts('filename');
fileparts函数返回文件路径各部分的信息,在返回的参数中,pathstr表示文件路径,name是主文件名,ext是扩展名(包括前面的点),versn是文件版本。
为了区分操作系统,还可以调用filesep函数返回文件路径的分隔符,windows系统中返回的是“\”,UNIX系统返回的是“/”。
f=fullfile('dir1','dir2',...,'filename');
fullfile函数得到完整的文件路径,前面的参数分别表示文件的路径,最后一个参数表示文件名称,可以用数组组合成一个完整的文件名。例如:filepath=fullfile(pathstr,[name
ext]);
2.打开和关闭文件
低级文件IO操作中,需要用fopen和fclose打开和关闭文件。
[fid,message]=fopen(filename,mode);
filename表示打开文件的名称;
mode表示打开方式,有以下几种:
'r'只读方式。
'w'只写方式,覆盖原来的内容。
'a'增补方式,在文件末尾增加数据。
'r+'读写文件。
'w+'若文件不存在则创建一个新文件,若存在则删除已有内容并进行读写操作。
'a+'读取和增补文件。
默认情况下,matlab选用二进制形式打开文件,在该形式下字符串不会被特殊处理。如果要用文本形式打开,则应在以上mode参数后面添加't'。例如'rt','rt+'等。
返回值中,fid为文件标识,是一个非负整数,matlab根据fid值来标识所有已打开的文件,然后才能对文件进行各种操作。如果得到fid值是-1,表示打开失败。
举例说明,[fid,message]=fopen('fget1.m','r+');用读写方式打开文件,若matlab设置的文件路径中没有该文件,会返回错误信息。当用只写方式'w'时则不会出现错误信息,因为如果没有搜索到该文件,系统会自动创建一个空白文件。
status=fclose(fid); %关闭标识为fid的文件
status=fclose('all');%关闭所有已打开文件
如果status=0表示关闭成功,否则status=-1。
这里要注意一点,如果要删除一个已打开的文件,也必须要先关闭它,不能直接用delete函数删除,否则系统会提示用户删除命令被拒绝。
3.处理二进制文件
常见的二进制文件有.m和.bat等,用fread和fwrite函数读取和写入二进制文件。例如,
[fid,message]=fopen('plot.m','r+');
data=fread(fid);
得到的data是一个数值数组,也就是说虽然打开的文件是代码文件,但是用fread读取到的却是数值。若要显示成字符,需添加下面一行代码。
disp(char(data'));