我有一套6個方程式,我想讓numpy爲我解決。所以我構造了一個6×6的係數矩陣,並用各種值填充它。然而,我最終編寫的代碼是很難理解的,並且對於我想向我的代碼讀者解釋的方程式幾乎沒有提及。是否有一個更清晰的方法來解決具有numpy的線性方程組?
例如,填寫所述係數矩陣看起來像這樣:
# Coefficients matrix
# Order of variables: w, X, Y, Z, s, t
A = np.mat(np.zeros((6,6)))
A[0:3,0] = cam_inv[...,2]
A[0:3,1:4] = -np.identity(3)
A[3:6,1:4] = np.identity(3)
A[3:,4] = -eigvecs[...,0]
A[3:,5] = -eigvecs[...,1]
# Constants matrix (RHS of equation)
b = np.mat(np.zeros((6,1)))
b[0:3,0] = -cam_inv[...,0:2] * point
b[3:,] = mean.T
res = np.linalg.solve(A,b)
(凡cam_inv,eigvecs,平均值和點是一些其它基質別處計算)
顯然上面的代碼可以有更多的評論,但我覺得即使有一些評論,它仍然不能真正傳達正在解決的基本方程。有沒有更好的方法將方程式輸入解算器,使代碼更清晰易讀?
嗯,它完全特定於您的問題,不是嗎?這是一些計算機視覺應用嗎?它可能不適合整潔的代碼,但你可以在上面的一個很好的大評論中寫出矩陣的元素,參考你正在實現的公式/技術/論文 – YXD 2013-02-15 15:15:29
確實,人們可以 - 然而,它感覺像這是許多人以前必須遇到的問題,所以似乎應該有一個更好的界面來處理這種情況。 (是的,這是一個計算機視覺應用程序。) – 2013-02-15 15:18:25