我有兩個矩陣。兩者都充滿了零和一個。一個是大的(3000 x 2000元素),另一個是較小的(20 x 20)元素。我正在做這樣的事情:使用numpy矩陣加速計算
newMatrix = (size of bigMatrix), filled with zeros
l = (a constant)
for y in xrange(0, len(bigMatrix[0])):
for x in xrange(0, len(bigMatrix)):
for b in xrange(0, len(smallMatrix[0])):
for a in xrange(0, len(smallMatrix)):
if (bigMatrix[x, y] == smallMatrix[x + a - l, y + b - l]):
newMatrix[x, y] = 1
這是痛苦的緩慢。我做錯了什麼?有沒有一種巧妙的方法可以使這項工作更快?
編輯:基本上我是,對於大矩陣中的每個(x,y),檢查大矩陣和(x,y)周圍的小矩陣的所有像素以查看它們是否爲1。 1,然後我在newMatrix上設置該值。我正在做一種碰撞檢測。
你確實有這樣的表達: smallMatrix [X + A - 1, y + b - l]) 當您使用「大矩陣索引」x,y來處理小矩陣上的元素時,這是正確的嗎? – jsbueno
這是正確的。 –