which函数可以给出指定文件的路径
用法:
which(‘aaa’)(查找文件名为aaa的文件的路径)
比如输出路径为:E:\ toolbox\ matlab\ myDIYfile\ aaa.m
需要注意:
(1)当要查找的文件路径中,三层及以上的母文件夹名字中有大写字母时,它的输出路径中会将大写字母变成小写字母,比如用which查找ccc的路径,它会输出:E:\ toolbox\ matlab\ mydiyfile\ a\ b\ ccc.m其中文件夹myDIYfile已经变成mydiyfile。
(2)在matlab中,并不区分路径中的大小写字母,比如 输入命令 cd E:\ toolbox\ matlab\ mydiyfile\ a\ b 和命令cd E:\ toolbox\ matlab\ myDIYfile\ a\ b都会进入到b这个文件夹中。
(3)但是,当将两个路径作为字符串进行对比时,比如 strcmp (which(‘ccc’),‘E:\ toolbox\ matlab\ myDIYfile\ a\ b\ ccc.m’),则结果为false,因为which(‘ccc’)会将大写DIY变成diy,那么用字符串来对比路径就不明智了。
附加:
如果想得到aaa.m文件所在的文件夹路径可以用fileparts函数:
dir1=which aaa;
[dir2, ~]= fileparts(dir1);
%dir1为文件aaa的路径 E:\ toolbox\ matlab\ myDIYfile\ aaa.m
%dir2为aaa所在文件夹的路径 E:\ toolbox\ matlab\ myDIYfile