oop - Matlab 有类似于 main 方法的东西吗?

标签 oop matlab program-entry-point

如果我有一个包含类定义 (classdef) 的单个 Matlab 源文件(m 文件),是否有任何方法可以指定在我运行时要执行的一组特定代码m文件?我的意思是整个文件,例如通过 IDE 中的 Run 按钮、从 shell 或从 Matlab 命令行。我不是说手动选择要执行的代码。

在 Java 中使用静态 main 方法和在 Python 中通过在类定义之外(可能在 if __name__==__main__ block 中)存在类似的行为。

最佳答案

简短的回答是“不”; MATLAB classdef M 文件只是为了定义对象,而不是形成完整的程序。

长的答案是你可能能够从你的 classdef 函数中获得特定的行为,例如,你重载构造函数以获取一个标志来指定是“像变量一样工作”还是“像程序一样工作” ".

例如

classdef myClass
...
methods  
    function self = myClass(varargin)
       if nargin == 1 && strcmpi(varargin{1},'run')
          ..... %run the program
       else
          ..... %make the variable

或者你可以创建一个名为 main 的静态方法:

   methods (Static = true)
       function main()
          %enabes: myClass.main()
          ...
       end

IDE 仍然不知道如何处理您的 M 文件以“运行它”,但您可以从命令行或另一个 M 文件正确运行它。

最后一句话不是 100% 正确 - 正如 Egon 在下面指出的那样,您可以让 MATLAB 的 IDE 运行该代码 - 使用“运行配置”:http://www.mathworks.com/help/matlab/matlab_prog/run-functions-in-the-editor.html

关于oop - Matlab 有类似于 main 方法的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801944/

相关文章:

Java split() 返回一个空的第一个元素

c# - 构建通用应用程序 - 允许客户特定的选项

oop - ddd : Entity or VO

Matlab - 提取线的分水岭 - 丢失的信息

java - 为什么我的 jar 文件不能在双击时启动?

c++ - 模板化类型定义和继承

performance - matlab sum(X-Y) vs sum(X) - sum(Y)

json - 如何以编程方式将 JSON 文件导入 MATLAB?

c++ - 创建一个 vector 作为函数调用参数

java - 如何从main调用java中的方法?