在MATLAB函数中省略"结束"是否可以?

slh*_*hck 4 matlab function keyword

我是MATLAB编程的新手,但是我收到了一个脚本,它以某种方式遗漏了s的所有end语句function.

例如:

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)
% ....
Run Code Online (Sandbox Code Playgroud)

那个syle"还好吗?" 显然,当我尝试运行它时没有语法错误,并且只要我们使用它,程序就会起作用.函数会自动运行到下一个function语句吗?

Sam*_*rts 10

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

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

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

由于典型的简单MATLAB代码在每个文件中大多有一个函数,可能有一些子函数,没有函数嵌套,并且不是面向对象的,它将大部分省略ends.