引用不同目录中的变量和函数

时间:2014-06-05 08:44:39

标签: matlab directory

我正在使用MATLAB并在一个文件夹(C:\ Matlab \ MainFolder)中工作,其中包含我的所有'm'和amp; 'mat'文件。但是,该文件夹正在与许多文件聚集在一起。

我想要做的是创建两个子文件夹 - 'data_structs'和'misc_functions',并且能够在我的'MainFolder'中工作时引用这些文件。最好的方法是什么?

3 个答案:

答案 0 :(得分:2)

.mat个文件不需要在您当前的工作文件夹中;您可以将它们放在data_structs子文件夹中,并使用相对路径引用它们,例如代码中的'.\data_structs\data_struct1.mat'

最好的方法是组织代码(即您的.m文件)将它们放在包文件夹中。这些在matlab中创建名称空间,如果包含它们的文件夹当前处于活动状态或在Matlab路径中。为此,请创建文件夹+misc_functions(尽管您可能希望为其选择更好的名称)。假设您在此包文件夹中的文件f1()中定义了函数f1.m。要在主脚本/函数中调用此函数,您可以使用类似misc_functions.f1()

的内容

有关组织代码here的更多信息(该信息也适用于程序编程,但在OOP部分中有所分类)。

答案 1 :(得分:1)

一种简单的方法是使用' genpath'命令。使用:

addpath(genpath('C:\Matlab\MainFolder'))

这会将C:\ Matlab \ MainFolder的所有子文件夹添加到搜索路径中。

答案 2 :(得分:0)

我写了一个wrapper for genpath,它允许您从genpath的输出中排除指定的目录模式。尽管我更喜欢用+表示法打包函数,但这既是为了缩短函数名,又是因为它们在您进入文件夹时位于路径上,但是如果您需要添加 most,这可能是另一个选择。 ,但不是全部。