# affichage d'une lettre (= vérification bon chargement) def tracerLettre(let): a = -let*np.pi/180; coord = np.array([[0, 0]]); for i in range(len(a)): x = np.array([[1, 0]]); rot = np.array([[np.cos(a[i]), -np.sin(a[i])],[ np.sin(a[i]),np.cos(a[i])]]) xr = x.dot(rot) # application de la rotation coord = np.vstack((coord,xr+coord[-1,:])) plt.plot(coord[:,0],coord[:,1]) return #Trois lettres générées pour 5 classes (A -> E) n = 3 # nb d'échantillon par classe nClred = 5 # nb de classes à considérer fig = plt.figure() for cl in xrange(nClred): Pic = models[cl][0].cumsum() # calcul des sommes cumulées pour gagner du temps Ac = models[cl][1].cumsum(1) Bc = models[cl][2].cumsum(1) long = np.floor(np.array([len(x) for x in Xd[itrain[cl]]]).mean()) # longueur de seq. à générer = moyenne des observations for im in range(n): s,x = generateHMM(Pic, Ac, Bc, int(long)) intervalle = 360./d # pour passer des états => angles newa_continu = np.array([i*intervalle for i in x]) # conv int => double sfig = plt.subplot(nClred,n,im+n*cl+1) sfig.axes.get_xaxis().set_visible(False) sfig.axes.get_yaxis().set_visible(False) tracerLettre(newa_continu) plt.savefig("lettres_hmm.png")