【问题标题】:Is it okay to leave out "end" in MATLAB functions?可以在 MATLAB 函数中省略“结束”吗?
【发布时间】:2011-12-12 13:10:58
【问题描述】:

我对 MATLAB 编程完全陌生,但我收到了一个脚本,不知怎的,我忽略了 functions 的所有 end 语句。

例如:

function pushbutton_open_Callback(hObject, eventdata, handles)
[FileName,PathName,FilterIndex] = uigetfile('*.txt','Select the CONFIG file');

if FileName~=0
    init_session(hObject, FileName, PathName);
end

% shouldn't there be an "end" here?

function pushbutton_start_Callback(hObject, eventdata, handles)
% ....

那个风格“好吗”?显然,当我尝试运行它时,没有语法错误,而且无论何时我们使用它,该程序都可以运行。函数会自动运行到下一个function 语句吗?

【问题讨论】:

    标签: function matlab keyword


    【解决方案1】:

    我猜想在典型的 MATLAB 代码中,省略ends 比不省略更常见。这样做没问题,但如果你想把它们放进去也没关系。我不会说做出任何选择都是不好的风格(FWIW,我通常将它们排除在外)。

    在某些情况下他们必须在那里,例如:

    1. 如果你正在编写面向对象的代码,方法函数需要有一个end
    2. 嵌套函数需要有一个end
    3. 如果文件中的任何函数或子函数具有end,它们都必须具有。

    由于典型的简单 MATLAB 代码通常每个文件都有一个函数,可能带有一些子函数,没有函数嵌套,并且不是面向对象的,因此它大多会省略 ends。

    【讨论】:

      【解决方案2】:

      完全没问题,matlab 理解文件的结尾就是函数的结尾。 但是,当您在同一个文件中有多个(嵌套)函数时,您必须编写end

      例如:

      function y=f(x)
        y=x^2+g(x)
        function y2=g(x2)
          y2=2*x2;
        end
      end
      

      【讨论】:

        【解决方案3】:

        是的,虽然它被认为是不好的风格(学究式),但有些人不喜欢在他们的代码中使用多余的行。

        【讨论】:

          猜你喜欢
          • 2014-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-09
          • 2022-01-02
          相关资源
          最近更新 更多