2016-05-12 45 views
2

我想刪除或最小化爲1的非指數矩陣元素。我希望這是在符號計算(sympy模塊)內完成的。在Python中減少矩陣元素的係數

from sympy import* 
init_printing() 

X = symbols('X') 
A = Matrix([[1, 2*X**2], [4*X, 2]]) 
A 

enter image description here

我曾嘗試與subs()功能解決這個問題,但隨後也影響了指數,這是我想保持原樣。

有什麼建議嗎?

回答

2

也許這樣?

from sympy import* 
init_printing() 

X = symbols('X') 
A = Matrix([[1, -2*X**2], [4*X, -2]]) 

for i in range(len(A)): 
    if A[i].is_Number: 
     A[i] = A[i]/abs(A[i]) 
    else: 
     A[i] = A[i].primitive()[1] 
A 

*編輯:允許底片

+0

如果其中一個號碼是否定的,因爲它不轉讓其標誌......怎麼可能是固定使用的符號實際發生的問題? – mcluka