首页 > 解决方案 > 如何结束 MATLAB/Octave 函数定义?

问题描述

在寻找 MATLAB 和 Octave 的代码片段时,我注意到函数以各种方式结束,而且它们似乎都工作得很好。具体来说,我说的是驻留在其特定文件中的函数。

MATLAB似乎以end.

function y = average(x)
  y = sum(x)/length(x); 
end

Octaveendfunction.

function retval = avg (v)
  retval = sum (v) / length (v);
endfunction

但是,我的函数工作得很好,函数末尾没有任何关键字。

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

标签: matlabfunctionsyntaxscriptingoctave

解决方案


endfunction

  • endfunction是 Octave 特定的,并且不是有效的 MATLAB 语法(endfor等...)
  • 如果您知道代码只会在 Octave 中运行,那么这种语法可以使您的循环/函数/...更清晰、更快速地匹配。请注意,您的代码与 MATLAB 不兼容。
  • 我相信您也可以end在 Octave 中使用以实现兼容性。

使用严格end

您可能需要阅读MATLAB 文档以了解嵌套函数

因此,在具有唯一函数的函数文件中,简短的回答是“根本不严格”。但是,使用它是一种很好的做法,end因此如果您要添加其他本地函数,则可以减少歧义并提供更大的灵活性。


推荐阅读