编码和 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 语句。我不知道为什么:'(希望这是有道理的,非常感谢任何帮助!