Bonjour,
J'ai un programme qui lit des données qui arrivent toutes les secondes sur un port série et je chercher a faire une régression linéaire toutes les 3 minutes sur ces données.
voila mon code :
Cependant j'obtient l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 import time import datetime import serial import csv import numpy as np from scipy import stats import matplotlib.pyplot as plt import matplotlib.dates as dates ser = serial.Serial('COM4', 9600, timeout=1) time_init=datetime.datetime.now() list_data=[] #liste contentant les donnees list_delta=[] #liste contentant les deltas list_time=[] #liste contenant le temps test = str(datetime.timedelta(seconds=180.0)) #print (test) b=True # boucle qui lit les donnees toutes les 3 minutes while b: data=ser.readline() # lecture des donnees du port serie data=data.decode('ascii') # decode les donnees time_data=datetime.datetime.now() # heure des donnees delta=str(time_data - time_init) list_data.append(data) list_delta.append(delta) list_time.append(str(time_data)) print(list_data) # si delta est strictement superieur a 3 minutes if delta > test: del list_time[0] # supprime le premier temps car donnee vide for data in list_data: #print(data) y = np.array([data]) ys = np.squeeze(y) print(ys) for time_data in list_time: #print(time_data) x = np.array(str(time_data)) print(x) slope, intercept, r_value, p_value, slope_std_error = stats.linregress(x,ys) break
Je ne vois pas comment faire pour résoudre cette erreur ..n = len(x)
TypeError: len() of unsized object
Merci pour votre aide
Partager