我在python中初始化数组时遇到问题。我一直在努力寻找解决办法,但什么也没找到(可能是我搜索了错误的关键字)。 不管怎样,这就是我想要达到的目标: 我正在为机器视觉应用程序编写python脚本。应用程序由几个“工具”组成,这些工具按其顺序迭代运行。其中一个工具是我作为python脚本编写的。在这个脚本中,我需要创建一个数组类型变量,对于每个迭代,它将删除第一个值,并在末尾附加一个新值。因为它需要记住迭代之间的数组,所以它必须是全局的吗? 问题是我需要在脚本的开头将变量定义为数组。为此,我使用: xPosition\u数组=[] 在脚本的后面,我附加了一个值。但是,下一次迭代 xPosition\u数组=[] 将用空数组覆盖数组。 如何使代码只定义/初始化数组一次(第一次迭代)
提前谢谢
代码:
global xPosition_array
xPosition_array = []
filter_win_len = 40
def moving_average(a, n) :
ret = np.cumsum(a, dtype=float)
ret[n:] = ret[n:] - ret[:-n]
return ret[n - 1:] / n
xPosition = GetValue('LocatexPos.Line[1]_q_x')
if len(xPosition_array) < filter_win_len:
xPosition_array.append(xPosition)
elif len(xPosition_array) == filter_win_len:
xPosition_array.pop(0)
xPosition_array.append(xPosition)
xPosition_filtered = moving_average(xPosition_array, filter_win_len)
如果在函数中编写整个工具,则可以调用函数并将数组作为参数传递
每次你想使用这个工具时,只需调用函数
我不太清楚你想在这里实现什么,所以希望这是有帮助的
您可以尝试以下方法初始化阵列:
然后,当您执行进一步的迭代时,您将得到以下结果:
输出:
然后,只要它还没有定义,就应该将它设置为空数组。假设
xPosition_array
对主函数仍然可用,以迭代方式调用工具。请参阅以下答案:How do I check if a variable exists?以进一步检查变量相关问题 更多 >
编程相关推荐