0

编码和 Python 的新手。我有这段代码,由于某种原因,它只会通过我的第一个 if 语句。我已经看了好几个小时,老实说我不知道​​为什么?

for i in range(1, trex.shape[0]-1): 
    for j in range(1,trex.shape[1]-1): 

        if shape[i,j] == 0:    # for 0 degree angles # ONLY GOES THROUGH THIS
            if trex[i,j] < trex[i, j+1] and trex[i,j] < trex[i,j-1]: 
                trex[i,j] = 0

        elif shape[i,j] == 45:    # for 45 degree angles # Never comes down here
            if trex[i,j] < trex[i-1, j+1] and trex[i,j] < trex[i+1,j-1]:
                trex[i,j] = 0

        else    # for 90 degree angles         # Or here
            if trex[i,j] < trex[i-1, j] and trex[i,j] < trex[i+1,j]:
                trex[i,j] = 0

所以基本上我希望它通过一个二维数组。我有另一个称为 shape 的二维数组(与 trex 相同的形状),其角度为 0、45、90。首先我查看点 [i,j] 的角度,然后根据它的角度,我希望它看起来在该点的邻居处的 trex 值。如果相邻点都低于中间点,那么我什么也不做。否则,我将中间点 ([i,j]) 设置为 0。但是当我运行我的代码时,它只会将角度为 0 的那些设置为 0。所以它永远不会归结为我的 elif 或 else 语句。我不知道为什么:'(希望这是有道理的,非常感谢任何帮助!

4

0 回答 0