MATLAB中的源代码树组织(#include)

Yol*_*ola 2 matlab include

假设我有很多源文件,我想在文件夹树结构中组织它们.

我可以拥有几个具有相同名称的文件,并在我需要的地方使用它们,或者我必须拥有不同名称的所有函数和类吗?

在C++中我必须#include介绍我需要的功能,就在这里?

只是为了说明:

.\main.m
.\Algorithms\QR\Factory.m    % function Factory
.\Algorithms\QR\Algorithm.m  % function Algorithm
.\Algorithms\SVD\Factory.m   % function Factory
.\Algorithms\SVD\Algorithm.m % function Algorithm
Run Code Online (Sandbox Code Playgroud)

Amr*_*mro 5

MATLAB支持名称空间.因此,在您的示例中,您将创建以下内容:

C:\some\path\main.m
C:\some\path\+algorithms\+qr\factor.m
C:\some\path\+algorithms\+svd\factor.m
Run Code Online (Sandbox Code Playgroud)

(注:只有顶层包文件夹的父文件夹必须在MATLAB的路径,即:addpath('C:\some\path'))

然后,您可以使用其完全限定名称调用每个名称:

>> y = algorithms.qr.factor(x)

>> y = algorithms.svd.factor(x)
Run Code Online (Sandbox Code Playgroud)

您也可以在某个范围内导入包.例如:

function y = main(x)
    import algorithms.svd.*;
    y = factor(x)
end
Run Code Online (Sandbox Code Playgroud)

  • @Yola:您是否注意到每个包文件夹名称开头的"+"符号?您可能想先浏览我链接的文档页面.. (2认同)