From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Remplir tableau

Résolu !
Accéder à la solution

Bonjour à tous,

 

Voici le problème sur lequel je bute depuis un certain moment:

j'ai 2 tableaux de même taille en entrée exmple et 1 tableau en sortie, j'aimerai remplir le tableau de sortie q'avec certaines valeurs bien précise

 

Exemple: 

                le tableau 1 (entrée) contient les valeurs [4, 2, 3, 4]

                le tableau 2 (entrée) les valeurs [10, 3, 5, 8]

 

j'aimerai remplir mon tableau de sortie qu'avec les valeurs du tableau 2 correspondantes aux valeurs quand tableau 1 contient la valeurs 4 en d'autre termes j'aimerai avoir en sortie mon tableau rempli avec les valeurs [10, 8] sans qu'il n'ai de zeros (les tableau d'entrées  peuvent être de taille plus importante).

 

Merci d'avance pour votre aide (exemple, explication...) et bonne journée à tous

 

0 Compliments
Message 1 sur 11
5 280 Visites
Solution
Accepté par l'auteur du sujet backo

tu peux utiliser le "conditional indexing"

 


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 2 sur 11
5 275 Visites
Solution
Accepté par l'auteur du sujet backo

solutions multiples

 

(la 1ere c'est comme TiTou ... posté alors que je n'avais pas vu ton message TiTou)

 

la 2eme ... une petite cabriole, j'aime bien les cabrioles Smiley heureux

 

SR1.png

Message 3 sur 11
5 272 Visites
Solution
Accepté par l'auteur du sujet backo

je sais pas si on peut faire plus compliqué que ta deuxième solution ouadji...

 

est ce que celle là est trop simple?

 

 et si tu cherche à optimiser tu te rendra compte que dans ton code, si tu mets la constante 4 à l'intérieur de la boucle FOR, ça ira plus vite Smiley clignant de l'œil


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 4 sur 11
5 267 Visites

Je n'aime pas de mettre un "build_Array"dans une boucle For.

C'est déconseillé (je pense) ... car LV doit redimensionner le Tableau à chaque itération.

 

si,si ... il doit y avoir moyen de faire plus complqiué ... Smiley clignant de l'œil

 

PS:

 

suis pas certain que de mettre le "4" dedans ou dehors changera qq chose.

Dans les 2 cas le compilo voit bien que c'est une constante .... à tester.

 

 

Message 5 sur 11
5 249 Visites

Merci à tous les deux, vous avez sauvé ma journé et mon diplôme d'ingénieur Smiley heureux

0 Compliments
Message 6 sur 11
5 243 Visites

D'une manière générale j'aime bien "travailler" sur des Tableaux de tailles connue et fixe.

 

En générale ... je n'aime pas trop cette fonction "Build_Array" .. surtout dans les boucles.

 

Je le vois bien avec mon code ChessEngine (sur lequel je bosse toujours)

Travailler avec des tableaux de tailles fixes (initialize array + code + reshape en sortie) est nettement plus rapide.

 

Dans ma 2eme solution, je n'utilise pas "initialize array" ... je profite d'un Tableau déjà existant.

 

hummmm ... avec un Tableau de grande taille ... pas certain du code qui sera le plus rapide ... TiTou ou Ouadji n°2

 

(je dis bien avec un Tableau de grande taille ... avec 4 éléments, un crayon et une feuille de papier, c'est ok aussi  Smiley très heureux  )

0 Compliments
Message 7 sur 11
5 240 Visites

Petit test "rapide".

 

(sans faire compliqué ... juste pour avoir une "première idée")

 

Les valeurs "absolues" sont sans importance.

Seuls les rapports de comparaison ont un sens.

 

deux tableaux aléatoires de 10E+7 éléments chacun (entre 0 et 10)

 

Résultats (multiple essais et moyenne)   (Intel Core2Quad Q6600 - 4Go - 2,4Ghz - XPsp3)

 

 

Tunel indexé "conditionnel"  :  95 (ms)

Build Array + structure case : 230 (ms)

ouadji n°2 (replace array)   : 125 (ms)

 

 

TEST.png

 

 

 

Je n'ai remarqué aucune différence de temps "manifeste" avec la constante "4" dedans ou dehors, et ce dans les 3 codes.

 

Message 8 sur 11
5 220 Visites

J'ai trouvé mieux (vitesse) ... plus rapide que le Tunnel Indexé Conditionnel 

.

(Tunnel conditionnel : 95 ms - voir ci-dessus)

 

le code ci-dessous :  81 ms  

 

(mêmes conditions de test - résultat identique)

 

SR1.png

0 Compliments
Message 9 sur 11
5 197 Visites

toujours plus vite ... 67 ms 

 

(mêmes conditions - résultat identique)

 

plus vite ? peut-être quelque chose de récursif (j'en doute fort), ou alors du côté du parallélisme (?)

 

 

SR1.png

 

 

0 Compliments
Message 10 sur 11
5 194 Visites