Matlab有模块吗?

3

我想为一些实用工具函数创建一个文件,例如:utils.m,其中utils会导出一系列函数。但据我所知,Matlab只能在每个.m文件中导出一个函数并以文件名命名。我该如何解决这个问题?


1
请查看packages - Praetorian
你可以按照工具箱的方式来做,每个函数创建一个文件并将整个目录导出,或者将其添加到你的路径中。 - Dan
1个回答

7
你不能真正地“绕过”这个问题 - 但对于这种用例,使用软件包可能是一个好主意:

http://www.mathworks.de/de/help/matlab/matlab_oop/scoping-classes-with-packages.html

在你的情况下,将所有的实用函数放入名为+utils的目录中:
+utils
    foo.m
    bar.m

然后你可以通过以下方式调用foobar
utils.foo(...)

如果您真的想把所有功能放在一个m文件中,您可以将utils作为一个只有静态函数的类来实现,例如:
classdef utils

methods (Static)
    function foo(..)
    end

    function bar(..)
    end
end

end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接