2012-04-04 102 views
1

有没有办法让MATLAB提醒开发人员或警告用户几个特定函数m-file的冲突(相同名称)版本存在于当前存在于path中的不同目录中?这对于大型协作MATLAB项目非常有用。函数(文件)名称冲突警告

回答

1

如果你有你需要检查,看看是否已经存在与该名称的任何功能的特定功能名称,你可以使用函数WHICH。例如,如果我添加了一个新功能,文件test.m我的当前目录(C:\Program Files\MATLAB\R2010b\bin\),那么这就是它告诉我:

>> which test -all 
C:\Program Files\MATLAB\R2010b\bin\test.m 
C:\Program Files\MATLAB\R2010b\toolbox\stats\stats\@classregtree\test.m % classregtree method 
C:\Users\user\Documents\MATLAB\test.m         % Shadowed 

现在有三个函数叫做test:一个是classregtree对象类的方法,其中一个是我刚刚做出的功能(顶线),最后一个(底线)现在被我刚刚制作的那个所遮蔽。这意味着,如果我从当前目录调用test,则会调用第一个。如果我换到别的目录,我得到这个:

>> which test -all 
C:\Users\user\Documents\MATLAB\test.m 
C:\Program Files\MATLAB\R2010b\toolbox\stats\stats\@classregtree\test.m % classregtree method 

较新的test功能显示不出来了,因为以前的目录中并没有保存在MATLAB path。先前被遮蔽的test函数现在将成为所谓的函数。