2016-06-21 77 views
0

我想使用洪水填充算法來填充這條曲線的兩種顏色之一,這是用紅色是1和藍色是零定義。但是,當我嘗試運行我的代碼時,它說明線路if m[i][j]=1:的語法不正確。任何關於如何調試的建議?謝謝。在此代碼m是矩陣我在工作和ij是我的xy變量蟒蛇4路遞歸洪水填充曲線

from pylab import * 
m=zeroes((100,100)) 

for i in range(100): 
    for j in range(100): 
     m[i,j]=sin(i+j+0.1*i*j+0.1*j*j)+cos(i-j+0.2*i*i) 

n=m.copy() 
n[n>0]=1 
n[n<0]=0 
imshow(n) 

def floodfill (m,i,j): 
    if m[i][j]=1: 
     m[i][j]=0 

     if i>0: 
      floodfill(matrix,i-1,j) 
     if i < len(m[y]) - 1: 
      floodfill(m, i+1, j) 
     if j>0: 
      floodfill(m, i, j-1) 

      floodfill(m, i, j-1) 

回答

2

你沒有發佈確切的錯誤,但我可以告訴你,這是不正確的:

m[i,j]=sin(i+j+0.1*i*j+0.1*j*j)+cos(i-j+0.2*i*i) 

m[i,j]不正確。 i,j是一個元組,但列表索引(在m[]括號裏面的東西)只能是整數

2

值是使用==運營商,而不是被用於賦值表達式單一=平等進行比較。所以你應該用if m[i][j] == 1代替if m[i][j]=1:

順便說一句,它確實說「語法錯誤」,所以你應該檢查突出顯示的行的語法。這是您調試的提示。