作爲一個小的練習,然後我開始在Python中使用數字代碼來玩遊戲,我試圖做一個LDLT算法。只是爲了「讓腳溼」。基本的Numpy數組值賦值
但是,我似乎缺乏對numpy數組的基本理解。請參閱以下示例:
def ldlt(Matrix):
import numpy
(NRow, NCol) = Matrix.shape
for col in range(NCol):
Tmp = 1/Matrix[col,col]
for D in range(col+1, NCol):
Matrix[col,D] = Matrix[D,col]*Tmp
if __name__ == '__main__':
import numpy
A = numpy.array([[2,-1,0],[-1,2,-1],[0,-1,2]])
ldlt(A)
該示例並非我正在處理的完整代碼。然而,嘗試運行它,並設置一個斷點在矩陣[col,D] = ...
我期望的第一次評估是行0列1(起始值爲-1)是設置等於= -1 *(1/2)= -0.5。
但是,在運行代碼時,它似乎設置爲0.爲什麼? 必須有一些基本的東西我沒有真正理解?
在此先感謝你們所有人幫助我。
EDIT 1:
的Python版:3.3 TMP .:成爲0.5(據報道由我的調試器)。
是的,就是這樣。非常感謝 - 在我偶然發現之前已經很長時間了。 – Daniel 2013-02-22 16:36:57