9评估

通常,只需在Octave提示下输入表达式,或要求Octave解释保存在文件中的命令,即可计算表达式。

有时,您可能会查找有必要对已计算并存储在字符串中的表达式进行求值,这正是eval函数允许您这样做。

 
: eval (try)
: eval (try, catch)

分析字符串尝试并将其被认为是Octave程序。

如果执行失败,请计算可选字符串接住.

字符串尝试在当前上下文中进行评估,因此任何结果在之后都可用eval返回。

以下示例创建变量A在当前工作空间中近似值为3.1416。

eval(“A=acos(-1);”);

如果在评估过程中出现错误尝试然后接住字符串,如下例所示:

eval('error(“这是一个糟糕的例子”);','printf(“发生此错误:\n%s\n”,lasterr());');-|出现此错误:这是一个错误的示例

编程注意事项:如果您仅使用eval作为一种错误捕获机制,而不是用于执行任意代码字符串,请考虑使用try/catch块或ununwind_protect/unnnd_protect_cleanupblocks。这些技术具有更高的性能,并且不会像评估任意代码那样引入安全考虑。

详见: 伊瓦林, evalc, assignin, 发烧.

这个evalc函数还捕获从求值表达式返回的任何控制台输出。

 
: s = evalc (try)
: s = evalc (try, catch)

分析和评估字符串尝试就好像它是一个Octave程序,同时将输出捕获到返回变量中s.

如果执行失败,请计算可选字符串接住.

此函数的行为类似eval,但通常会写入控制台的任何输出或警告消息都会被捕获并以字符串形式返回s.

这个diary在执行此函数期间被禁用。什么时候系统使用时,外部程序返回的任何输出捕获,除非它们的输出被捕获系统函数本身。

s=评估值(“t=42”),t⇒ s=t=42⇒ t=42

详见: eval, 记事簿.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号