管理更大的 MATLAB 项目

Managing bigger MATLAB projects

我正在开发一个不断增长的 MATLAB 程序。它最初是一个脚本集合,但变得越来越大。现在一切都在一个大文件夹中,但为了分离独立的模块,我想将它们分成子文件夹。模块之间存在一些依赖关系,因此我希望能够访问不同模块的函数而无需复制 MATLAB 文件。

是否有将所有目录添加到搜索路径的替代方法? 如何保持更大 MATLAB 项目的代码库整洁?

我看到已经有一个类似于名称空间的 link。但是,如果您不想使用包,则可以遵循我目前使用的结构。如果你的大项目数量有限,我认为这特别有效

假设您从事 2 个项目,然后制作三个并行文件夹:

  1. 项目 1
  2. 项目 2
  3. 一般

基本上您可以在各自的文件夹中开始构建项目 1 和项目 2,当您看到两个项目中都在执行类似的操作时(可能经过一些概括之后),您可以将它们移至 general。只需确保通用在搜索路径中位于较低位置,这样您将始终在通用函数之前找到自定义函数。

当然一般也可以做子文件夹


请注意,最简单的使用方法是先将通用文件夹添加到您的路径,然后再添加项目文件夹。在那种情况下,你的路径上可能仍然有很多文件,但这样就没有重复,你可以很容易地看到哪些关键文件与项目相关。

快速修复:

您可以将所有主要程序添加到一个根目录中。子模块位于下面的文件夹中。 在每个主程序中,您要确保所有路径都设置正确。 在程序结束时恢复原始路径设置

% Begin of main program. Set path to all subfolders
save_path = path;
curr_dir = strrep(which(mfilename('fullpath')),mfilename,'')
addpath(genpath(curr_dir))

% Main program 
....
....
....

% Restore original Path settings
path(save_path);