在MATLAB中,我可以在一个文件中定义多个函数,只有第一个定义的函数在该文件外部可见.或者,我可以将每个函数放在自己的文件中,并通过路径使它们全局可见.我正在编写一个菜单驱动的应用程序,其中每个菜单项运行不同的功能.目前,这些都在一个大文件中,越来越难以导航.我想做的是将相关函数组放入单独的文件中.
我想我可以通过将所有子函数放入一个单独的目录然后将目录添加到我的父函数中的路径来做这样的事情,但这感觉有点混乱和不优雅.
任何人都可以提出更好的建议吗?
注意:我最熟悉MATLAB 2006,但我正在升级到MATLAB 2009.
gno*_*ice 16
一个避免必须修改MATLAB路径的建议是使用私有函数目录.例如:
假设您test.m在目录中调用了一个函数\MATLAB\temp\(已经在MATLAB路径中).如果test.m您希望将本地函数放在它们自己的m文件中,而您只想test.m访问它们,则首先要在\MATLAB\temp\被调用中创建一个子目录private.然后,将各个本地函数m文件test.m放在此private子目录中.
该private子目录并不需要被添加到MATLAB路径(事实上,它不应该被添加到路径的东西才能正常工作).只有子目录test.m正上方目录中的文件和其他m文件private才能访问它包含的功能.使用私有函数,您可以有效地模拟本地函数的行为(即有限的范围,函数重载等),而无需将所有函数放在同一个m文件中(这对于某些应用程序来说可能会非常大).
也许是这样的,
function foobar
addpath C:\Include\ModuleX
%% Script file residing in ModuleX
some_func();
end
Run Code Online (Sandbox Code Playgroud)
当然,ModuleX将在退出foobar后保留在您的搜索路径中.如果要将其设置为默认路径而不重新启动,请添加以下行:
path(pathdef)
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅ADDPATH.