2016-04-29 7 views
1

Ich rufe Octave-Skript von PHP und übergibt Parameter an es. Aber ich bekomme die unerwartete Ausgabe.Unerwartete Ausgabe beim Aufrufen von Oktavenskript von PHP

Der PHP-Code Ich verwende Argumente zu übergeben und die Octave Skript aufrufen ist:

$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); 

Mein Octave Skript:

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

function f (a,b) 
    a + b 
endfunction 

printf(f(a,b)); 

Der Ausgang get ist:

ans = 107 

Erwartete Ausgabe ist:

11 

Wie kann ich das beheben?

+0

Welche Version von Octave verwenden Sie ? Rufen Sie das Skript unter Windows auf? – James

+0

@James, Octave4, ja das Skript auf Windows aufrufen. – next2u

Antwort

3

Sie fügen die ASCII codes für das Zeichen „8“, die 56 und „3“, die 51 ist, so wird das Ergebnis 107 die Zeichenfolgen in Zahlen umrechnen:

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

Danke .. @ Andy..Its arbeitet jetzt ... – next2u