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

时间:2016-04-29 09:20:55

标签: 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);

My Octave脚本:

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

function f (a,b)
  a + b
endfunction

printf(f(a,b));

输出get是:

ans = 107

预期输出为:

11

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您正在为字符“8”添加ASCII codes,其为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));