# indices to calculate pair-wise products (H, V, D1, D2)
shifts = [[0,1], [1,0], [1,1], [-1,1]]
# calculate pairwise components in each orientation
for itr_shift in range(1, len(shifts) + 1):
OrigArr = structdis
reqshift = shifts[itr_shift-1] # shifting index
for i in range(structdis.shape[0]):
for j in range(structdis.shape[1]):
if(i + reqshift[0] >= 0 and i + reqshift[0] < structdis.shape[0] \
and j + reqshift[1] >= 0 and j + reqshift[1] < structdis.shape[1]):
ShiftArr[i, j] = OrigArr[i + reqshift[0], j + reqshift[1]]
else:
ShiftArr[i, j] = 0
如果我尝试运行代码,则会出现以下错误:
NameError:未定义名称'ShiftArr'
如何解决此错误?
答案 0 :(得分:0)
从外观上看,您在使用ShiftArr之前尚未定义它。这就是错误的意思。
似乎您是在嵌套循环中首先使用ShiftArr,但之前从未说过ShiftArr = ...
如果在第一个for循环之前添加ShiftArr = [],这应该可以解决您的问题。由于变量名不是超级有用的信息,因此很难理解您要执行的操作。这可能在干燥修复代码错误时会有所帮助。