2016-04-29 41 views
1

我正在從PHP調用八度腳本並向其傳遞參數。但是我得到了意想不到的結果。從PHP調用八度腳本時出現意外輸出

我使用來傳遞參數並調用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 

我該如何解決這個問題?

+0

什麼版本的倍頻您使用的是?你在Windows上調用腳本嗎? – James

+0

@James,Octave4,是在窗口上調用腳本。 – next2u

回答

3

您要添加的ASCII codes的是56字符「8」和「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)); 
+0

謝謝.. @ Andy ..現在工作... – next2u