Rechercher l'index d'un élément d'un tableau

Bonjour,
Ce que je souhaite faire est d'extraire l'index d'un élément qui se trouve plusieurs fois dans un même tableau. le résultat souhaité c'est un tableau contenant les index de cet élément recherché.
Par exemple (ci-joint): si j'ai un tableau D de 4 colonnes (1,2,0,0) et je veux chercher les index de l'élément 0, le résultat que je veux obtenir c'est un tableau qui contient (2.3) (les 2 positions du 0 dans le tableau)..
J'ai réalisé ce VI mais je sais pas ce qu'il lui manque.
Merci beaucoup;
Résolu !
Accéder à la solution.
Pièces jointes :
rech_index.vi ‏12 KB
rechercher index.JPG ‏130 KB

Bonjour,
voici un exemple, j’ai utilisé la palette openGL.
http://sine.ni.com/nips/cds/view/p/lang/en/nid/209027
Cela n’est qu’une méthode  certainement pas la plus optimisée, mais cela reste un exemple.
Cdt
Samuel G. | Application Engineer Team Leader
Certified LabVIEW Developer
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
Été de LabVIEW 2014
12 présentations en ligne, du 30 juin au 18 juillet
Pièces jointes :
Filtre.zip ‏12 KB
Filtre2011.zip ‏8 KB

Similar Messages

  • Rendre non visible l'élément d'un tableau

    Bonjour,
    J'ai créer un tableau de cluster sur la face avant de mon application, ce tableau me sert de légende pour un graphe! J'aimerais pouvoir rendre non visible, ou simplement griser un élément de mon tableau mais je ne sais pas comment m'y prendre. J'ai regardé dans le property node mais je n'ai pas trouvé la bonne property. Le but de cette manip et de rendre invisble une légende dans le cas ou la trace n'est pas disponible.
    Cordialement
    Sébastien Kuenlin
    Résolu !
    Accéder à la solution.

    bonjour Une remarque : Si dans un tableau, d’éléments de type « cluster », vous désirez « griser » ou visuellement « montrer que non actif » un élément du tableau, alors que les éléments suivant du tableau sont actifs, vous ne pouvez pas juste « redimensionner » la taille du tableau. Vous pouvez  alors ajouter dans le cluster un booléen « actif » dont la couleur valeur « true » est « transparente » et la « false » à une image « semi-transparente grisée ». A+
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Mesure sur tout les éléments d'un tableau avec Teststand

    Bonjour,
    J'ai actuellement un V.I Labview qui ferme des chemins de relais lus dans un fichier texte et qui vient ensuite mesurer la tension, il me sors ensuite un tableau avec toutes les valeurs de tension mesurées. J'ai fais une séquence Teststand où je viens exécuter mon V.I et faire un "Measure numeric limit" sur les valeurs de tension.
    Seulement sur le rapport il n'y a qu'un unique pass/failed. J'aimerais que le pas de test soit fait sur chaque mesure et avoir chaque valeur avec la mention pass/failed a coté
    Merci d'avance
    Merya
    Résolu !
    Accéder à la solution.

    Une solution basique serait d'appeler un VI qui ne traite qu'une seule tension par TestStand dans une boucle.
    Une solution plus élégante serait d'utiliser un step Multiple Numeric Limit test
    Rodéric L
    Certified LabVIEW Architect
    Pièces jointes :
    sequence.png ‏50 KB
    rapport.png ‏17 KB

  • Randomiser la position d'éléments dans un tableau

    Bonjour,
    Je souhaiterais rendre aléatoire une série de valeurs dans un tableau. Par exemple j'ai 6 valeurs dans un tableau 1,2,3,4,5, et 6. Je souhaite que le tableau me sorte ces 6 valeurs dans un ordre aléatoire. Comment puis-je faire? Merci d'avance pour votre aide.
    Résolu !
    Accéder à la solution.

    Voilà une petite traduction en code, en espérant que çà correponde à ce que tu attendais.
    Cordialement
    Benoît C.
    Certified LabVIEW Associate Developer

  • Additionne​r les éléments d'un tableau d'images

    Bonjour,
    Voilà mon problème: je fais l'acquisition de N images grâce à un VI d'acquisition créé sous le module Vision Acquisition. Ces N images sont regroupées les unes à la suite des autres dans un tableau 1D. J'aimerai additionner chaque cellule du tableau pour n'obtenir qu'une seule image qui ne soit pas un tableau.

    Pourquoi cette structure séquence et toutes ces variables locales   ... au lieu de simplement "cabler".
    Pour faire "+1" dans la boucle, utilise un Shift-Registre.
    (sur le problème de fond de l'addition d'images, je passe mon tour    )
    ceci dit, j'aime bien l'icone moi

  • [Débutant] Detecter valeurs min et max

    Bonjour,
    j'ai quelques soucis pour ce sujet :
    A partir de trois tableaux numérique, j'ai créer un tableau 2D.
    Je souhaite détecté les valeurs min et max de chaque tableau, afin d'utiliser un graphe intensity, pour mettre a jour l'échelle automatiquement.
    Pouvez vous m'aidez, s'il vous plait?
    Merci d'avance.

    Le graphe d'intensité n'est pas forcément idéal pour ce que vous voulez faire mais je ne connais pas d'autre type d'indicateur qui serait plus facile à utiliser. L'idéal serait d'avoir un "XYZ Graph" mais ça n'existe pas en natif dans LabVIEW.
    Comme l'a dit SimonD le graphe d'intensité accepte un tableau 2D dans lequel chaque élément contient la valeur d'intensité du point dont le X et le Y sont les index de l'élément dans le tableau. Par exemple si on appele A notre tableau 2D, alors A[1,2] est l'intensité du point situé à X=1 et Y=2
    L'idée serait de "découper", je dirais même "pixeliser" la zone géographique que doit couvrir votre graph en initialisant un tableau 2D dont la taille dépendra de la finesse des pixels dont vous avez besoin.
    Ensuite, connaissant les min et max de lattitude et longitude, vous pourrez déduire pour chaque triplet (lat, long, prof) les index X et Y où aller placer la valeur de profondeur dans votre tableau 2D.
    Il reste un dernier truc à régler : si votre tableau 2D a une taille de 100x100 éléments, les axes du graph seront gradués de 0 à 100. Pour obtenir une graduation exprimée en latitude et longitude vous pouvez utiliser les propriétés XScale.Offset et XScale.Multiplier
    Bon, sachant un petit diagramme vaut mieux qu'un long discours, je vais essayer de poster un code d'exemple
    Cordialement,
    Yohann L.

  • RT FIFO écriture taille éléments

    Bonjour,
    je voudrais savoir le comportement du VI "RT FIFO write" dans cette situation:
    j'ai configuré une FIFO RT de 10000 éléments, un éléments étant un tableau de 640 valeurs. Si je rentre un tableau de 1000 valeurs par exemple,
    est ce qu'il divise automatiquement les 1000 valeurs en deux éléments (un de 640 et un de 360 par exemple), ou est ce qu'il perd une partie des données? Si oui, est ce le début ou la fin?
    Enfin, est ce qu'une erreur sera signalée?
    Merci d'avance
    Guillaume

    Merci de la réponse... j'ai effectivement refait des tests depuis, et lorsque l'on envoit un tableau plus grand, il tronque une partie et elle disparait, sans aucun signalement d'erreur.
    Mon nombre d'éléments varie car il provient d'un DMA, qui est lu dans une boucle haute prio (TCL). Je transferais ensuite les données dans ma FIFO RT. Cependant, si le temps entre le lancement de chaque itération (TCL) est régulier (du moins je l'espère, c'est le but du temps réel non? ), le lancement de chaque action dans une boucle ne semble pas rigoureusement être identique. Ce qui fait que le nombre de données que je lis dans la DMA n'est pas toujours le même (même si dans plus de 95% des cas, il s'agit bien d'un tableau de 640 éléments). Nous ne voyons pas d'autres explications (cf E&R).
    J'ai donc trouvé la parade en envoyant forcément un tableau de 640 éléments, et le mouton retombe sur ses pattes si je puis m'exprimer ainsi.
     ps: si j'ai posé ces questions, ce n'est pas tellement par fainiantise de vérifier moi-même (encore que...), mais c'était surtout pour savoir si une erreur se déclenchait dans ce cas-la, car je n'en voyais pas.

  • Une partie de programme ne s'exécute pas

    Bonjour à tous;
    J'ai réalisé un programme pour mésurer la vitesse de phase à partir des fréquences de résonance. Mon problème est le suivant: lorsque j'exécute celui-ci je remarque qu'une partie du programme n'est pas exécutée et pourtant il ne y a pas d'erreurs et meme il ne se bloque pas. En fait, j'arrive pas à croire ce défaut , il m'apparait bizarre. Je travaille sous labview 6i dans l'environnement Windows 95 car la carte d'acquisition de données de NI exige Windows 95. S'il vous plait si vous avez une idée, n'hésitez pas à la transmettre.
    Cordialement;

    Désolé, mais au lieu d'une réponse, voici de nouvelles questions :
    Quel est le défaut exact ?
    La boucle FOR ne s'exécute jamais ?
    La boucle FOR ne s'exécute pas le nombre de fois attendu ?
    La condition "compris entre 1E+7 et 2E+7" n'est jamais vraie ?
    Autre chose ?
    Et puis :
    Quel est le contenu de la séquence 0 de la séquence multiple ? Pourriez-vous également joindre une capture d'écran ?
    Quelle est la taille du tableau (nombre d'éléments) qui entre dans la boucle FOR ?
    Quelle est la valeur du I32 qui sort du VI de recherche des pics ?
    Je suppose que le contenu de la condition Faux est un simple fil puisque dans ce cas l'élément en cours ne doit pas être ajouté au tableau. Prière de confirmer.
    Dans l'attente de vos réponses qui clarifieront les choses et nous permettront de vous aider de manière ciblée, je vous invite à lire le paragraphe Auto-Indexing Loops de ce document. Vous y apprendrez qu'en utilisant l'auto-indexage (comme dans votre code) il ne faut pas relier l'entrée N de la boucle FOR car le nombre d'itérations à réaliser est alors défini par le nombre d'éléments du tableau auto-indexé. Faites des essais pour voir ce qui se passe en utilisant l'auto-indexage et en reliant N et en définissant celui-ci à un nombre inférieur, égal et supérieur au nombre d'éléments du tableau. Si le nombre d'éléments de votre tableau devait différer du nombre de pics trouvés (d'où la nécessité de voir le code de la séquence 0 et mes autres questions), la boucle FOR pourrait ne pas s'exécuter le nombre de fois attendu.

  • Code (débutant) demande avis

    Bonjour à tous,
    Je propose au yeux des anciens un petit exercice que je me suis imposé ...
    vos avis, remarques ... tout m'intéresse.
    Description de la manip:
    Je génère 1000 nombres aléatoires, fourchette de [0 .. 9].
    Le but de ce VI : Quel est le nombre qui a été généré le plus souvent ?
    en A: j'initialise un Tableau de 10 éléments (à 0)
    en B: le générateur
    en C: J'utilise chaque nb généré comme un index,
             et pour chaque nombre généré, avec cet index, j'incrémente l'élement correspondant du Tableau.
             Ici, une question ... y a-t-il d'autres façons d'incrémenter un élément dans un Tableau ?
    en D: Je recherche l'élement le plus grand du Tableau.
             Le code de "D" me "plait" assez bien.
             J'utiliser un noeud de rétroaction avec son terminal "enable/disable".
             Impossible d'utiliser un registre à décalage, celui-ci ne ne proposant pas de fonction "enable/disable"
             Ca fonctionne tip-top (en termes de résultats) ,mais le résultat c'est une chose... et faire du beau code, c'est autre chose.
    Le résultat final se trouve dans "nb max".
    <EDIT>
    En fait non, le résultat final c'est l'index de ce nombre maximum dans le tableau.
    mais le time-out du forum ne me permettra pas d'ajouter le (petit) code manquant.
    Sans avis "extérieurs", difficile d'avancer.
    remarques, conseils, critiques ... je prends tout.
    Un grand merci à tous.

    Rodéric,
    j'ai fait la comparaison. Création / initialisation d'un Tableau de 10 éléments. ( 10e7 fois et mesure du temps)
    au dessus   : avec une boucle For et indexation
    en dessous : avec la fonction Initialize array
    Je ne comprends pas, vous parliez de performances supérieures avec "boucle For + indexation"
    Quelque chose doit certainement m'avoir échappé, car ici, je remarque l'inverse.
    au dessus   : avec une boucle For et indexation : 460ms
    en dessous : avec la fonction Initialize array : 38ms
    (comprends pas !)

  • Lien entrée/ sortie d'un USB-6525

    Bonjour a tous,
    N'ayant pas remarqué qu'il y avait une partie française j'ai déjà commencer le topic ailleurs, voici le lien:
    http://forums.ni.com/t5/Digital-I-O/USB-6525/m-p/1​954973#M15748
    Je vais essayer de tout réexpliquer clairement:
    Je dispose d'un USB-6525 et j'aimerait m'en servir afin de faire le lien entre labview et un banc de test "automatiser"
    Mon but étant que je puisse contrôler les relay par labview (ca c'est fait)
    mais aussi d'utiliser le 6525 afin de vérifier les signaux de fin de process.
    Une fois que mon système aura fait une action, il enverra un signal sur le 6525 par exemple en input0 et j'aimerait réussir a affiche sur labview dans un premier temps, des diodes de contrôles qui s'allume des que j'ai un signal puis dans un  second temps j'aimerai que ces signaux de contrôles  permettent de lancer la suite du processe , un peu comme un signal enable
    Processe1--> processe1 terminer, j'envoi un signal-->usb6525 reçoit le signal , une diode s'allume et sa lance le processe 2..
    Merci
    Cordialement rodolphe B.
    Résolu !
    Accéder à la solution.

    Bonjour Rodolphe,
    tout d'abord, je vous conseille pour ne pas partir de zéro de vous diriger vers le exemples LabVIEW (Aide>>Recherche d'exemples).
    Read Dig Chan.vi et Write Dig Port.vi sont les exemples les plus simples de mesure/génération numérique.
    Pour ce qui est de passer de 8 voies à une voie, c'est un problème classique de manipulation de tableau de booléens.
    Je vous ai joint un snippet qui montre comment accéder aux éléments d'un tableau de booléens grâce à une boucle ou au vi "indexer un tableau".
    Cordialement,
    Audrey_P
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées techniques : des fondamentaux aux dernières technologies pour la mesure et le contrôle/comm...
    Pièces jointes :
    TableauBooleen.png ‏19 KB

  • Kdoc (tracking post: collection of links and infos abt kdoc)

    i'm trying to find out, what happened to "kdoc" ... we have a pkg of it in the repositories, but it's source-path do not longer work ... all kde-ftp-servers have removed kdoc from it
    the Arch Linux Bug:
    http://bugs.archlinux.org/index.php?do= … ments#tabs
    the link to the original kdoc project page (last changes 1999):
    http://www.ph.unimelb.edu.au/~ssk/kde/kdoc/
    to all who are good in searching the internet:
    please help me find out, what happened with this kdoc --- it seems that it is dead and not longer in use
    if it is not dead, please provide me the link to the source-tarball
    thank you for helping

    dp wrote:
    Hi Archers,
    kdoc is not longer provided by kde.org and the website of this project
    is last updated longer than 2 years ago. The author is not responding
    to emails and is not reachable.
    As the sources disappeared from the kde-servers, i changed to use
    sources from Slackware 8.1 for this pkg to be still build-able. (thanx
    Sarah31 for the link)
    In wonder if kdoc is used by anyone here, i want all, who need this pkg
    staying in Arch Linux to reply to the Mailing List ([email protected]) and express, that they
    are using kdoc. If you plan to use it, please explain why.
    If there is no positive answer, nobody claiming using this package till
            the 20. March 2004,
    i will remove it from the repositories.
    thanx in advance,
    Damir Perisa
    4 days left

  • Ne pas ecrire dans un tableau

    Bonjour,
    Je créer un tableau un indexant la sortie d'une boucle while.
    Je voudrais que suivant une condition, il ne prenne pas en compte la valeur.
    Par exemple, dans le fichier ci-joint, je voudrais un tableau avec comme résultats 1 2 4 5.
    Comment puis-je faire?
    Merci de votre aide
    Pièces jointes :
    test_tableaux.vi ‏9 KB

    Bonjour il existe une fonction OpenG « conditional auto-indexing tunnel » ; le but est de conserver l’ensemble des éléments d’un tableau « Array In » pour lequel le tableau des « Element to keep » est à true.
    L’idée est alors de faire, dans la boucle, le tableau des données et le tableau des booléens « A garder ». Par auto-indexation il suffit  de câbler les mesures sur la boucle et de câbler le « A gadrer » sur la boucle également.
    Puis d’utiliser la fonction qui réalise le tableau des éléments à conserver.
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Registre à décalage

    Bonjour,
    J'ai développé récemment une IHM dans le cadre de mes études d'ingénieur. Cette IHM devait envoyer des commandes de tensions vers une carte électronique via une liaison RS232. La carte électronique envoyant ensuite cette commande de tension sur une ou plusieurs voies (24 au totale) afin de polariser une antenne.
    J'ai donc mis 24 controls numérique (pour l'envoi de la valeur de tension/ un par voie) ainsi que 24 cases à cocher (pour la sélection des voies) sur mon IHM. J'ai ensuite mis une structure évenement (avec un évenement sur chaque sélection de la case à coché pour l'envoi de la valeur de la tension) je stock ensuite les 24 valeurs dans un tableau. Lorsque j'appuis sur le bouton "envoi", je "dépile" mon tableau dans le VI d'envoie sur la liaison RS232. Un programme sur la carte électronique se chargant ensuite du traitement des valeurs différentes de 0V pour envoie vers l'antenne.
    J'ai don du utilisé 24 registres à décalage pour avoir accés à chaque valeur dans tous les évenements de ma strucuture évenement. Je suis finalement arrivé à une IHM parfaitement fonctionnelle mais je me posais la question s'il n'existait pas d'autre alternative que le registre à décalage pour mon IHM (parce que j'en ai passé des heures à relier chaque ligne de mes registre à décalage). Même question pour l'utilisation du tableau.
    J'epère avoir été clair.
    Merci
    Benjamin
     

    " extraire un à un les éléments d'un Cluster" ... ?
    il n'est pas possible " d'indexer " un Cluster.
    par contre, si tous les éléments du cluster sont du même type, tu peux convertir ton Cluster en Tableau ("cluser to array" dans la palette cluster)
    et ensuite ... indexer le Tableau obtenu.
    attention, les éléments dans le Tableau se trouveront dans l'ordre dans lequel il se trouve dans le cluster
    Tu me diras .... bein oui, je m'en doute :-)
    attention ... l'ordre dans le cluster n'est pas oblibatoirement l'ordre avec lequel ils sont graphiquement visibles (dans le cluster)
    Au départ ... l'ordre dans un cluster est l'ordre suivant lequel tu introduis les éléments dans le cluster.
    ensuite .... tu peux réorganiser cet ordre ... clic droit sur le bord du cluster + reorder controls in cluster.

  • Boucle FOR et tableau de cluster

    Bonjour,
    J'ai créé un tableau de cluster contenant deux éléments et je souhaite que l'indice de mon tableau corresponde au "i" d'une boucle FOR;
    ce qui me permettrait de remplir les valeurs de mes clés à chaque itération.
    Ci-joint mon VI.
    Cdt
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Test_Scenario.vi ‏12 KB

    Bonjour,
    Je t'invite à te renseigner sur l'auto-indexation des boucles FOR:
    Auto-Indexing Tunnels with For Loops and While Loops in LabVIEW
    L'auto-indexation va permettre que ta boucle FOR s'exécute autant de fois que tu as d'élément dans ton tableau.
    L'itération 0 prendra donc l'élément à l'indice 0 de ton tableau. 
    L'itération 1 prendra donc l'élément à l'indice 1 de ton tableau.
    Bonne journée,
    Valentin
    Certified TestStand Architect
    Certified LabVIEW Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France
    Pièces jointes :
    auto indexation.vi ‏11 KB

  • Ressources Visa

    Bonjour,
    Je souhaiterai créer un Vi pour la recherche automatique de mes ressources GPIB, USB, COM. Ensuite je veux vérifier si mes appareils sont branchés et n'utilisés que ceux-ci.
    Lors de l'excution de mon programme j'obtient une erreur dans mon Visa Read. Quelqu'un pourrait t'il m'aider?
    Merci par avance,
    Fabien
    Solved!
    Go to Solution.
    Attachments:
    Recherche_auto_gpib.vi ‏14 KB

    Bonjour Fabien,
    Quelle erreur avez vous ? Si c'est un TimeOut sur le VISA Read, vous pouvez essayer une des solutions listés dans cette KB: http://digital.ni.com/public.nsf/allkb/874B379E24C0A0D686256FCF007A6EA0?OpenDocument
    (Surtout la 3).
    Par ailleurs, vous pouvez indéxer automatiquement votre boucle For au nombre d'élément de votre tableau, en faisant un clic droit sur le tunnel d'entrée>>Activer l'indéxation.
    Votre boucle For fera autant de tour que d'élément présent dans votre tableau, et récupérera un élément diférent à chaque tour.
    Vous n'avez pas besoin non plus d'avoir une structure condition si votre chaine de caractère est vide, elle ne le sera jamais.
    Cordialement,
    Benoit S. - Field Sales Engineer
    Certified LabVIEW Developer
    Certified TestStand Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Été de LabVIEW 2014
    12 présentations en ligne, du 30 juin au 18 juillet

Maybe you are looking for

  • How to reverse ios 7, it a company phone and traveler lotus note does not support the ios7, I need to use the traveller lotus note for work

    My phone is company phone, and once I upgraded to IOS7, my traveler lotus note does not work anymore, I can not receive email on my iphone anymore, please help to suggest either to reverse back to IOS6 or how receive the company mail with traveller l

  • Movies won't play or sync with IPhone 5 or computer

    I have a macbook pro 10.84--my I iPhone is 5, updated, and iTunes has been upgraded to 11.04.  My problem is this: I have purchased movies recently that will not play or syn shoc with my iPhone 5, all I get is a black screen.  They show up in my purc

  • Clear contents between tables

    Hi everyone, I need some help with a macro im doing. I have some documents with 150 pages with tables each and some text between them.  Basicly i need a macro to do this: Delete the text between tables (Except for the paragraphs with just "ABC" or "D

  • Date format used in the datepicker

    Hi, I have a problem with date format when I open the pop up calendar: w=open("wwv_flow_utilities.show_as_popup_calendar" +..... "&p_date_format=" + escape('MM/DD/YYYY HH:MI ' )... I have the popUp window with message instead of calendar: " NOT FOUND

  • Exceptions not thrown on interrupted SocketChannel.write()

    I just noticed a behaviour of java.nio.channels.SocketChannel.write() that makes me wonder. If write() blocks(), and the channel is closed during this blocking by another thread, AsynchronousCloseException should be thrown. However, in most cases thi