matlab - 如何结束 MATLAB/Octave 函数定义?
问题描述
在寻找 MATLAB 和 Octave 的代码片段时,我注意到函数以各种方式结束,而且它们似乎都工作得很好。具体来说,我说的是驻留在其特定文件中的函数。
MATLAB似乎以end
.
function y = average(x)
y = sum(x)/length(x);
end
Octave以endfunction
.
function retval = avg (v)
retval = sum (v) / length (v);
endfunction
但是,我的函数工作得很好,函数末尾没有任何关键字。
所以我的问题是,MATLAB/Octave 对函数定义的结尾有多严格。
解决方案
endfunction
endfunction
是 Octave 特定的,并且不是有效的 MATLAB 语法(endfor
等...)- 如果您知道代码只会在 Octave 中运行,那么这种语法可以使您的循环/函数/...更清晰、更快速地匹配。请注意,您的代码与 MATLAB 不兼容。
- 我相信您也可以
end
在 Octave 中使用以实现兼容性。
使用严格end
您可能需要阅读MATLAB 文档以了解嵌套函数
当函数是文件中的唯一函数时,您不必以
end
语句结束函数。从文档:通常,函数不需要 end 语句。
这是关于 SO 的一个相关问题:当不使用“end”时,一个 .m 文件中的多个函数是嵌套的还是本地的,相关摘录是这样的,也来自文档:
要在程序文件中嵌套任何函数,该文件中的所有函数都必须使用 end 语句。
因此,在具有唯一函数的函数文件中,简短的回答是“根本不严格”。但是,使用它是一种很好的做法,end
因此如果您要添加其他本地函数,则可以减少歧义并提供更大的灵活性。
推荐阅读
- bar-chart - 设置固定数量的 y 轴线以在 eCharts 上显示
- swift - 将 SwiftUI 视图转换为图像
- tcl - 如何在 TCL 中设置、清除和切换单个位?
- javascript - 通过属性比较对象数组,然后将新对象附加到数组中:Javascript
- python - 如何将依赖项安装到 Azure Pipeline Python
- android - Cannot solve this error. Kotlin -Firebase
- java - JAVA Google Maps API:根据缩放值设置边界
- database - 如何使用 JDBC 或 ODBC 连接将数据从 S3 存储桶导入 MySQL 数据库
- compiler-construction - 用于验证 C 样式运算符优先级和关联性的测试套件
- python - 如何使用python在mac上创建url快捷方式?