如何结束MATLAB/Octave函数定义?

Doh*_*Joe 1 syntax scripting matlab function octave

在寻找MATLAB和Octave的代码片段时,我注意到函数以各种方式结束,所有这些函数似乎都运行得很好.具体来说,我说的是驻留在特定文件中的函数.

MATLAB似乎结束了它们的功能end.

function y = average(x)
  y = sum(x)/length(x); 
end
Run Code Online (Sandbox Code Playgroud)

Octave结束其功能endfunction.

function retval = avg (v)
  retval = sum (v) / length (v);
endfunction
Run Code Online (Sandbox Code Playgroud)

但是,我的函数完全正常,没有任何关键字在函数的末尾.

所以我的问题是,MATLAB/Octave与函数定义的结尾有多严格.

Wol*_*fie 5

endfunction

  • endfunction是Octace特有的,这不是有效的MATLAB语法(同样适用于endfor......)
  • 如果您知道代码只会在Octave中运行,那么这种语法可以使您的循环/函数匹配 - 更清晰,更快捷.请注意,您的代码与MATLAB不兼容.
  • 我相信你也可以end在Octave中使用兼容性.

严格使用 end

您可能希望阅读嵌套函数MATLAB文档

所以在具有唯一功能的函数文件中,简短的回答是"根本不严格".但是,使用它是一种很好的做法,end因此如果要添加其他本地函数,则模糊性和灵活性会降低.