假设我有很多源文件,我想以文件夹树结构组织它们。

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

在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

最佳答案

MATLAB支持namespaces。因此,在您的示例中,您将创建以下内容:

C:\some\path\main.m
C:\some\path\+algorithms\+qr\factor.m
C:\some\path\+algorithms\+svd\factor.m


(注意:只有顶级包文件夹的父文件夹必须位于MATLAB路径上,即addpath('C:\some\path')

然后,您可以使用其完全限定名称来调用它们:

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

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


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

function y = main(x)
    import algorithms.svd.*;
    y = factor(x)
end

08-16 09:58