Python 在循环中平均实时数据
我目前正在通过python中的串行端口使用接近传感器 我得到的数据对应于一个距离。我的目标是获取每4条数据并计算平均值。我很难想出一个算法来解决这个问题。我正在使用以下代码:Python 在循环中平均实时数据,python,python-3.x,pyserial,Python,Python 3.x,Pyserial,我目前正在通过python中的串行端口使用接近传感器 我得到的数据对应于一个距离。我的目标是获取每4条数据并计算平均值。我很难想出一个算法来解决这个问题。我正在使用以下代码: ser = serial.Serial(port = "COM5", baudrate = 230400, bytesize = serial.EIGHTBITS, parity= serial.PARITY_NONE, timeout = 1) try: ser.isOpen() print("ser
ser = serial.Serial(port = "COM5", baudrate = 230400, bytesize =
serial.EIGHTBITS, parity= serial.PARITY_NONE, timeout = 1)
try:
ser.isOpen()
print("serial Port is open")
except:
print("error")
exit()
if (ser.isOpen()):
try:
while True:
line = ser.readline()
for position, data in enumerate(line):
if position == 4:
print (data)
#while position == 4:
#seq.append(data)
#if len(seq) != 4:
#seq.append(data)
#print (seq)
#while len(seq) == 4:
# print(seq)
# break
###
#if len(seq) != 4:
# seq.append(data)
# print(seq)
# while len(seq) == 4:
# print(seq)
except Exception:
print( "Keyboard Interrupt")
else:
print("cannnot open port")
实际输出如图所示:
要提供一个具体示例,请从该输出:
23
27
23
45
我想将其格式设置为:
29.5
(A+B+C+D)/4
是的,我知道如何计算数据集的平均值。。。我想弄清楚如何将每个输出放入一个由4个部分组成的列表中。你可能想用你想要的更具体的版本来更新你的问题<代码>我的目标是获取每4条数据并计算平均值。我很难想出一个算法来解决这个问题代码>我给你的意思。你说你已经知道了。那你到底想要什么?我正在流式传输实时数据,所以它在不断变化。我希望该程序能够自动采取在一个时间4件输出和平均出来,并显示新的数据。我遇到的问题是找到一种算法,一次提取4个片段。我希望以某种方式将4位排序到一个列表中,然后从中产生一个平均值
# ...
# init your List
seq = []
# ...
while True:
# append to your List
seq.append(line[4]) # short for for ... enumerate(line) + if position==4 ... data
# check length of your List
while len(seq)>4:
# reduce length of your List
del seq[0]
# (A + B + C + D) / 4
data = sum(seq) / len(seq)
print(data) # print your fluent mean average
# ...