Salut!
je cherche à faire un tableau avec références (keys) de type:
40 > 55
60 > 57
80 > 66
100 > 59
120 > 55
180 >66
...
Une idée? J'aimerais ensuite écrire ces association dans un fichier, qui sera formaté pour générer un graphique, peut-être avec Gephi.
Merci!
Hors ligne
Je suppose que tu dois pouvoir bricoler un truc avec [text search] et autres. Est-ce disponible avec Pd 0.45 ? Je crois que non ; dommage... Sinon un simple [garray] peut marcher si les clefs sont des entiers uniques.
Hors ligne
Salut Nicolas, et merci!
citation :
bricoler un truc avec [text search]
Oui j'ai [text ...] (sur une 0.48 en fait).
citation :
un simple [garray] peut marcher si les clefs sont des entiers unique
un garray c'est juste un array graphique? pas un objet en soi?
oui, c'est des entiers. Mais je ne trouve pas comment utiliser des clés à la place des pointeurs numérotés 0 - n
Mais la contrainte se complexifie:
Il s'agit en fait d'un test auditif, qui joue des fréquences provenant d'une liste ou d'une autre,aléatoirement, à gauche et à droite (donc s'il y a 20 fréquences dans la liste: 20 fois à gauche et 20 fois à droite dans le désordre total). A chaque fois que le cobaye appuie sur une touche midi, la valeur de niveau est envoyée. Ce qui fait qu'au final j'aurai un tableau à deux dimensions avec les fréquences comme clés, et si possible trié à la fin (je ne sais pas encore si le logiciel de graph pourra le faire). Dans un langage que je viens d'inventer:
array = [freq1 [resultL];[resultR] ] ; [freq2 [resultL];[resultR] ]
Tout ça serait fait en quelques lignes de Python, alors que ça semble vraiment compliqué avec PD, Mais je n'arrive pas à faire fonctionner la lib py:
http://codelab.fr/7257
Mais comprendre ce qui a été dit plus haut m'intéresse quand-même.
Hors ligne
Oui, je faisais référence à un simple array. Après je ne comprends pas bien ce que tu veux faire. Tu peux coller le code Python si tu préfères !
Dernière modification par Nicolas Danet (2020-04-27 17:27:22)
Hors ligne
oui désolé, comme j'ai la tête dedans peut-être qu'il y a des évidences qui ne le sont pas:
En résumé, j'ai besoin un tableau à deux dimensions avec clés.
A partir de ça je vais créer un graphique avec plplot ou gnuplot par exemple, soit en passant par python, soit PD me fait un .csv ou autre format utilisable, ce qui me paraît impossible, puisque tout ce que j'ai vu c'est l'écriture de fichiers avec des lignes se terminant par ; . ([text] ou [textfile])
Dernière modification par Blindekinder (2020-04-27 17:44:10)
Hors ligne
Pourquoi ne pas faire 2 listes tout simplement ?
Ou une seule liste, mais de regarder les valeurs par paires ? n et n+1 avec (n=0 , n<list lenght , n+=2)
Et sinon dans les data structures il n'y a pas moyen de faire des vecteurs de doublet de valeurs ?
Hors ligne
deux listes: pourquoi pas, mais je ne sais pas comment faire des listes indexées, ni comment les écrire dans un fichier utilisable
les Data Structures: oui j'ai un peu potassé ça, mais je n'ai pas trouvé le moyen de faire ce que j'ai besoin:
[struct maStructure float freq float levelL float levelR]
et après?
Hors ligne
Je ne comprends pas le problème des index de listes. Que représente l'index ? C'est pour remettre les premières valeurs dans l'ordre ? Et faire suivre les secondes valeurs ?
Il y a pas mal de fonctions dans list-abs pour réorganiser les listes.
citation :
list-abs - list-abs - apply abs() on floats of a list
list-apply - list-abs - apply the object created by [arg1 arg2]? on every list element
list-clip - list-abs - clip for lists
list-compare - list-abs - compare two lists element by element
list-delete - list-abs - delete element at a position
list-drip - list-abs - drips or serializes a list
list-drip2 - list-abs - drips two lists in sync (as long as 1st list lasts)
list-dripslow - list-abs - serialize a list on demand
list-enumerate - list-abs - serialize a list and put numbers in front of each element
list-extend - list-abs - build a list from incoming lists and output stored list
list-fifo - list-abs - first in, first out
list-filter - list-abs - returns a sequence of items for which the adjusted operation is true
list-find - list-abs - find positions of a value in a list
list-idx - list-abs - get element at position idx
list-insert - list-abs - insert LIST before ELEMENT at position POS in original list
list-l2s - list-abs - concatenate a list into a single symbol
list-lastx - list-abs - make a list of the last x floats
list-len - list-abs - calculate length of a list
list-lifo - list-abs - last in, first out
list-makefilename - list-abs - change symbols in a list, floats pass unchanged
list-map - list-abs - swiss army knife of list operations
list-map2 - list-abs - map an operation on element pairs from two lists
list-moses - list-abs - like moses for lists
list-onearg - list-abs - list with optional argument
list-reduce - list-abs - list goes element per element through a user-defined operation
list-replace - list-abs - replace (overwrite) a list from position POS with a new list
list-rev - list-abs - reverse a list's order
list-rot - list-abs - rotate a list
list-seek - list-abs - walk through a list element by element
list-sieve - list-abs - look up ocorrence of incoming floats in a list
list-splat - list-abs - advanced list-split with negative indexes
Hors ligne
Désolé si je m'exprime mal: j'ai besoin d'associer deux valeurs (les seuils d'audition G et D) à une fréquence, et d'y accéder par celle-ci. Par exemple les résultats pour 500Hz seraient -50dB et -48dB. Les fréquences sont importantes pour le graphique, car elle seront disposées sur l'échelle de l’abscisse de manière à afficher les intervalles réelles, et que l'on puisse visualiser le graphique de plusieurs manières (log-lin). Aussi, la liste des fréquences peut changer selon les tests.
Hors ligne
Avec [text] tu dois pouvoir manipuler tes données. Même les trier (si je me souviens bien) avec la dernière version. Par contre elles seront séparées par des points-virgules. Mais tu dois pouvoir les virer avec un script si besoin. Tu peux faire les graphiques dans Pure Data directement sinon.
Hors ligne
Merci,
effectivement, [text] semble assez avancé, je n'ai pas trouvé de fonction simple de tri, mais c'est forcément possible avec un patch.
Les graph PD sont carrément limité par rapport à un logiciel de plot.
Je vais tenter de faire fonctionner python dans un premier temps. Si vous connaissez un autre langage qui s'interface avec PD c'est bienvenu. Il y a LUA, mais je ne connais absolument pour l'instant.
Hors ligne
Y'a une méthode "sort" dans le code source de [text define] < https://github.com/pure-data/pure-data/ … ext.c#L486 >, mais je ne suis même pas certain qu'elle soit dans la dernière version. C'est tout chaud si ma mémoire est bonne.
Hors ligne
Effectivement, pas (encore) implémenté: text define: no method for 'sort'
Hors ligne
Après vérifications le tri est présent dans Pd-0.50-2 !
Hors ligne
Ah, bien, je regrderai!
Hors ligne