从php调用octave脚本时出现意外输出

从php调用octave脚本时出现意外输出,php,octave,Php,Octave,我从PHP调用Octave脚本并向其传递参数。但我得到了意想不到的结果 我用来传递参数和调用Octave脚本的PHP代码是: $a=8; $b=3; $cmd = "C:\Octave\Octave4\bin\octave-cli C:\wamp\www\dspace\add.m $a $b"; $ex = passthru($cmd, $op); var_dump($ex); 我的八度音阶脚本: arglist = argv(); a = arglist{1}; b = arglist{

我从PHP调用Octave脚本并向其传递参数。但我得到了意想不到的结果

我用来传递参数和调用Octave脚本的PHP代码是:

$a=8;
$b=3;
$cmd = "C:\Octave\Octave4\bin\octave-cli C:\wamp\www\dspace\add.m $a $b";
$ex = passthru($cmd, $op);
var_dump($ex);
我的八度音阶脚本:

arglist = argv();
 a = arglist{1};
 b = arglist{2};

function f (a,b)
  a + b
endfunction

printf(f(a,b));
得到的输出是:

ans = 107
预期产出为:

11
如何解决此问题?

您正在为字符“8”添加56,并为字符“3”添加51,因此结果为107。将字符串转换为数字:

arglist = argv();

a = str2num (arglist{1});
b = str2num (arglist{2});

function ret = f (a,b)
  ret = a + b;
endfunction

printf("%i", f(a,b));

你用的是什么版本的八度音阶?你在Windows上调用脚本吗?@James,Octave4,是的,在Windows上调用脚本。