2013-07-03 54 views
0

PHP代碼:得到一個PHP矩陣的逆

<?php 
$arr=array(array('1','2','3','4'),array('21','12','23','54'),array('10','23','35','41'),array('14','62','93','40')); 
$result = shell_exec("C:/Python27/python 123.py ".json_encode($arr)); 
echo $result; 
?> 

Python代碼:

import sys, json 
arr=sys.argv[1] 
print arr 
A=np.matrix(arr) 
print A 
print ("<br/>") 
M=A.I 
print M 
result = {'Name':'abc'} 
print ("Sending data to PHP") 
print (json.dumps(result)) 

給出逆輸出不來正確加上A矩陣是走出來是1x16而不是4x4,陣列arr的維數是正確的(4x4)。如何調試它並獲得正確的矩陣A和M?

+0

不是python編碼器,但在我看來,你並沒有解碼你作爲命令行參數傳入的json字符串。 'arr'會以字符串的形式出現,然後將其輸入到矩陣運算中。 –

回答

1

你似乎沒有解碼Python腳本中的JSON,而json_encode($arr)應該是json_decode($arr),除非我錯了。

+0

不,bcoz json_decode需要一個字符串作爲參數,而$ arr是一個數組 – abcdxx

+0

我想我明白了..我不喜歡使用json.loads(sys.argv [1]) – abcdxx