2.6.2 双重用途的可执行脚本和 Octave 函数

要编写既能从 shell 调用时作为可执行程序、又能在 Octave 内部调用时作为普通函数的 m-文件,请使用通过 argv 函数初始化的默认输入参数。

如果从 shell 调用函数,Octave 不会向该函数传递任何输入参数,因此将使用默认参数。但当从解释器调用函数时,任何参数都会传递给函数,并覆盖默认值。

此外,文件必须以 .m 扩展名结尾,以便解释器将其识别为 Octave 函数。最后,argv 的输出是一个字符串元胞数组。在处理之前,可能需要使用 str2doublestr2num 将其转换为数值。

作为一个完整示例,请考虑位于文件 mysin.m 中的以下代码。

#! /bin/octave -qf
function retval = mysin (x = str2double (argv(){end}))
  retval = sin (x)
endfunction

这可以从 shell 中通过以下方式调用

mysin.m 1.5

或从 Octave 中通过以下方式调用

mysin (1.5)

版权所有 © 2024-2026 Octave中文网

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