在Octave中运行含本地函数的简单脚本时出现错误
为什么调用
pluse函数会提示未定义错误? 先看看你写的代码:
pluse(1, 2) function retval = pluse(input1, input2) retval = input1 + input2; endfunction
运行后出现的错误:
error: 'pluse' undefined near line 1 column 1 error: called from testtest at line 1 column 1
这个错误的核心原因很直白:你在函数定义之前就尝试调用它了。
在Octave(以及MATLAB)里,脚本文件是从上到下逐行执行的。当运行到第一行pluse(1,2)时,解释器还没读到后面的function定义代码,自然不知道pluse是什么,所以会抛出“未定义”的错误。
另外提个小细节:你写的函数名是pluse(多了一个字母s),不过这不是当前错误的根源——只是如果你的目标是实现加法功能,Octave本身就有内置的plus函数,注意别打错字哦。
怎么解决呢?给你两个常用方案:
- 方案一:把函数调用语句移到函数定义的后面,让解释器先读到函数定义,再执行调用:
function retval = pluse(input1, input2) retval = input1 + input2; endfunction pluse(1, 2) - 方案二:把函数单独放在一个文件里,比如命名为
pluse.m,里面只保留函数定义,然后在另一个脚本或者命令行里调用它。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

