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

时间:2018-07-06 10:27:13

标签: matlab function syntax scripting 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对函数定义的结尾有多严格。

1 个答案:

答案 0 :(得分:5)

endfunction

  • endfunction是Octace特定的,这不是有效的MATLAB语法(endfor等也是如此...)
  • 如果您知道该代码只能在Octave中运行,则此语法可以使您的循环/函数/ ...的匹配更加清晰快捷。请注意,您的代码与MATLAB不兼容。
  • 我相信您也可以在Octave中使用end来实现兼容性。

使用end的严格性

您可能想阅读MATLAB documentation for nested functions

因此,在具有唯一功能的功能文件中,简短的回答是“完全不严格”。但是,使用end是一个好习惯,因此,如果要添加其他本地函数,将减少歧义,并提高灵活性。