Effacer graphe XY avec tableau indexé

Bonjour
Je cherche à effacer un graphe XY avec ses tableaux en amont qui sont indexés par un registre à décalage sur la boucle While.
Je n'arrive pas à effacer les tableaux de valeurs (j'utilise certainement une mauvaise solution)
Ci joint un VI simplifié mettant en évidance ce que je veux faire.
Résolu !
Accéder à la solution.
Pièces jointes :
Graphe XY à effacer.vi ‏17 KB

D'abord, mettre le bouton d'effacement dans la boucle. Ensuite, ce sont les registres à décalage qui doivent être ré-initialisés, pas le graphe !
Chilly Charly    (aka CC)
         E-List Master - Kudos glutton - Press the yellow button on the left...        
Pièces jointes :
Graphe XY à effacer.vi ‏15 KB

Similar Messages

  • Comment isoler le sujet principal d'une photo, et effacer le reste avec la couleur de fond ?

    Je ne suis pas doué, et je n'arrive pas à détourer proprement le sujet principal. Et lorsque des fois j'y arrive, impossible d'effacer le surplus, ni de remplacer par la couleur de fond !
    Merci à tous ceux qui pourront m'aider.
    Je travaille avec Photo Éléments 13.

    Hi,
    you may want to see here: you can use escape codes to change the foreground and background colors of characters in a list box.
    They affect only the label in which they are embedded.
    To change the foreground color, the code is \033fgXXXXXX where XXXXXX is a 6-digit RGB value specified in hex.
    To change the background color, the code is \033bgXXXXXX where XXXXXX is a 6-digit RGB value specified in hex.

  • Probleme avec une Graph XY

    Bonjour
    Je suis en train de construire une graph XY, avec deux données du meme type prise par le DAQmx, et mon Graph XY n'affiche rien, j'aimerais savoir pour quoi.  merci de votre aide,
    Joint mon VI
    Pièces jointes :
    calibration sensor S.vi ‏64 KB

    Bonjour,
    A chaque tour de boucle, vous faites l'acquisition d'un point par canal. Donc dans le graph XY vous n'écrivez qu'un point (un couple de valeur). Pour afficher une courbe sur le graphe vous avez plusieurs possibilités comme acquérir plusieurs échantillons à chaque tour de boucle, ou alors si vous ne faite qu'une mesure, l'ajouter à un tableau puis afficher ce tableau.
    Pour trouver se genre de problème, n'hésitez pas à utiliser des sondes sur vos cables, ou à afficher l'animation (l'ampoule) pour comprendre ce qui se passe sur le diagramme.
    Cordialement,
    Simon D.
    CLA | Certified LabVIEW Architect
    CTA | Certified TestStand Architect

  • Lire partiellement un tableau de plusieurs millions de lignes

    Bonjour,
    Alors voici mon problème: j'ai un fichier texte contenant un tableau de 9 colonnes et environ 15 millions de lignes. J'utilise labview pour traiter ces données, ce qui ne pose pas de problème hormis pour un point: lire partiellement le fichier sans avoir à effectuer une lecture complète, qui sature la mémoire du pc.
    Par exemple, je veux extraire 1000 lignes de ce tableau, à partir de la 10 000 ème ligne.  J'ai essayé avec le sous VI: "lire un fichier tableur" mais celui-ci ne propose qu'un offset de caratère à la lecture et non un offset de lignes, et c'est compliqué de connaître simplement la relation entre le nombre de caractères et le nombre de lignes.
    Donc est ce que vous auriez une autre solution pour lire paratiellement un tableau ?
    Merci d'avance pour votre aide
    Résolu !
    Accéder à la solution.

    bonjour j'ai le sentiment qu'un fichier binaire conviendrait mieux, afin d'avoir une structure d'octets fixe par ligne et de pouvoir utiliser la capacité à récupérer facilement des données  à n'importe quel endroit du fichier du fait que nous connaissons le nombre d'octets nécessaire à l'écriture d'une donnée. via " Définir la position" qui est en octet. 
    Toutes les autres méthodes (sur fichier ASCII) seront consommatrices de ressource.
    Un autre fichier binaire est intéressant : le fichier journal, qui est un tableau de cluster (par exemple pour vous une ligne ou un ensemble fixe de ligne = un élément du journal).
    Le grand avantage de cette méthode est qu’il est très simple d’accéder en lecture à la valeur d’un des éléments du tableau (index d'un des clusteur). Il suffit uniquement de spécifier son numéro à la fonction « Définir la position dans le fichier journal LabVIEW ». En effet cette fonction travaille sur des valeurs qui sont en nombre d’enregistrement, et pas en offset d’octets comme les fonctions binaires standards. Il est ainsi plus simple d’exploiter les essais réalisés.
    Mais je ne sais pas si cela est possible pour vous.
    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

  • Insérer 2 courbes dans un graphe XY en "temps réel"

    Bonjour,
    Alors voila, ça fait quelque temps que j'essaye d'afficher 2 courbes dans un graphe XY, avec des couleurs différentes et avec un affichage des points à chaque itération d'une boucle while.
    Dans l'exemple, ci-joint, qui illustre mon problème:
    -      J'arrive à afficher les 2 courbes dans 2 graphes XY avec un affichage à chaque itération (graphe XY et graphe XY 2).
    -      J'arrive aussi à afficher ces 2 courbes dans un même graphe XY mais seulement lorsque l'on appuie sur le bouton "stop"
    Mais lorsque j'essaye de faire les deux en même temps (graphe XY 3), les coubres s'affichent mais sont liées et de même couleur donc ca ne fonctionne pas...
    Quelqu'un a-t-il une idée?
    Gabriel
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    exemple.vi ‏20 KB

    houla... oublions le terme "temps réel", disons plutôt qu'à chaque fois que tu ajoutes un points tu veux rafraichir ton graph.
    tu peux utiliser un graph XY et si ton pas sur l'échelle X n'est pas constant tu es obligé d'utilisé en graph XY, mais sinon tu peux utiliser un chart, c'est parfois bien pratique, surtout pour un exemaple imple comme ton VI.
    l'astuce, cf VI joint, c'est de construire tes 3 tableaux [X], [Y1] et [Y2], de conserver l'historique dans un shift register et d'utiliser le build array pour mettre tes 2 courbes {[X];[Y1]} et {[X];[Y2]} dans ton graph XY.
    hope this helps
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"
    Pièces jointes :
    exemple.vi ‏12 KB

  • Ajout/Suppression Tableau 2D

    Bonjour à tous, 
    Je cherche à établir une liste de terminaux connecté au sein de mon système,  depuis la fonction "DAQmx - Connect terminals.vi" ( ou déconnecté depuis la fonction "DAQmx - Disconnect terminals.vi")
    Voici donc en gros ce que j'essaie de faire :
    Si je connecte
    -- Si les deux éléments NE SONT PAS dans le tableau
    -- -- Écrire les entrées dans le tableau
    -- Sinon, afficher "Connexion existante"
    Si je déconnecte
    -- Si les deux éléments SONT PRESENT dans le tableau
    -- -- Supprimer les entrées du tableau
    -- Sinon, afficher "Aucune connexion correspondante"
    Ainsi, lorsque l'on connecte deux terminaux, leur nom sont recopié dans un tableau 2D, dans le cas où il ne sont pas dejà présent dans celui-ci.
    Malheureusement je débute en Labview, et je suis confronté à de nombreux problèmes :
    Est-il vraiment possible de lire ET d'écrire sur un tableau ? (il me semble jusqu'à présent qu'un tableau est soit en lecture, soit en écriture (Commande/Indicateurs))
    Comment faire pour mettre les deux éléments cote à cote, à la suite des anciens éléments du tableau ?
    Comment vérifier si ils ne sont pas déjà présent dans le tableau ("Index Array.vi" avec comparateur "=" ?) ?
    Je remercie ceux qui ont prit la peine de lire jusqu'au bout et pour toute éventuelle réponse =)
    N'héistez pas à me demander toutes informations que vous jugerez necéssaire !
    Bonne journée à tous

    Bonjour,
    J'ai finalement trouvé une alternative !
    Je vous joins le VI en espèrant qu'il soit compréhensible.
    C'est étonnant, il me semblait pourtant avoir séléctionné le forum français..
    Y a-t-il un moyen de faire migrer une conversation d'un forum à l'autre ou doit on en créer une nouvelle ?
    Cordialement,
    Florent.J
    Attachments:
    Ajout_Suppression Tableau 2x1D.vi ‏25 KB

  • Tableau 2D en 2 tableaux 1D?

    ccxc

    Vous pouvez utiliser la fonction "Index array" pour isoler une ligne ou une colonne donnée. Dans une boucle For, avec l'index relié au n° de ligne ou de colonne, on peut ainsi découper tout un tableau en tranches.
    La fonction est également "extensible" : on peut faire apparaître autant de sorties que nécessaire en l'étirant vers le bas.
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        

  • Automatic Cursor Movement in one Graph, in accordance to the cursor in another graph

    I am using two XY graphs each with 4 cursors. I want to assign each cursor of graph A to each cursor of graph B such that the corresponding cursors in graph B moves in accordance to the cursors in graph A.
     I have used Active cursor, Cursor.PosX and it works for one cursor. However when I use the same concept to change the active cursor value and faciliate the automatic movement for all cursors they do not work.
    Message Edited by Chathuri on 08-13-2009 06:26 AM
    Solved!
    Go to Solution.

    Hi,
    As requested I would like to post the solution as to how I tacked the problem. It was actually small mistake on my part. When I connect the two property nodes for each XY graphs I should connect ActiveCursor to ActiveCursor and Cursor.PosX to Cursor.PosX. What I did was connect the Active cursor of A graph to the cursor.index of B graph. I have attached a small screen shot of connecting the first cursor of A graph to the 1st cursor of B graph so that the cursor in B graph follows the cursor in A graph.
    In order to connect more cursors as in my case, the only change to be made is the change in the Acitve cursor constant to, 1,2,......
    Chathuri
    Attachments:
    CursorMovement.JPG ‏7 KB

  • Java Graph code explanation

    Hi all,
    im new to java and have some trouble drawing a graph i looked up some code but dont quite understand it
    can someone explain the following code please. I understand swing and painting and basic java.
    Q1) Can please explain the flow of execution ?
    Q2)
    What i would also specifically like to understand about the code
    is how does the graph keep going and looks like it scrolls across and not off the frame and how can i add this to a frame i already have
    without covering over my other objects i have displayed.
    Any help would be greatly appreciated.
    Thanks
    import java.awt.*;*
    *import javax.swing.*;
    import java.awt.event.*;*
    *import javax.swing.event.*;
    import java.awt.image.BufferedImage;
    import java.awt.geom.*;*
    *import java.math.*;
    import java.util.*;*
    *public class ecg extends JFrame*
    *     myView view = new myView();*
    *     Vector vr   = new Vector();*
    *     int    ho   = 0;*
    *public ecg()* 
    *     addWindowListener(new WindowAdapter()*
        *{     public void windowClosing(WindowEvent ev)*
    *          {     dispose();*
    *               System.exit(0);}});*
    *     for (int i=0; i < 5000; i++)*
    *          int p = (int)(Math.random()*  260);
              vr.add(new Point(0,p-130));
         setBounds(3,10,625,350);
         view.setBounds(10,10,600,300);
         getContentPane().add(view);
         getContentPane().setLayout(null);
         setVisible(true);
         while (ho < 500-300)
              try
                   Thread.sleep(110);
                   ho = ho  +1;+
    +               repaint();+
    +          } catch (InterruptedException e) {}+
    +     }+
    +}+
    +public class myView extends JPanel+
    +{+
    +     BufferedImage I;+
    +     Graphics2D    G;+
    +public myView()+
    +{+ 
    +}+
    +public void paint(Graphics g)+
    +{+
    +     if (I == null)+
    +     {+
    +          I = new BufferedImage(getWidth(),getHeight(),BufferedImage.TYPE_INT_ARGB);+
    +          G = I.createGraphics();+
    +     }+
    +     G.setColor(Color.white);+
    +     G.fillRect(0,0,getWidth(),getHeight());+
    +     G.setColor(Color.gray);+
    +     Point p1,p2;+
    +     p1 = (Point)vr.get(ho);+
    +     int x = 0;+
    +     for (int y=1; y < 600; y++)
              p2 = (Point)vr.get(y+ho);
              G.drawLine(x,p1.y+150,x+6,p2.y+150);
              p1 = (Point)vr.get(y+ho);
              x = x + 6;
         g.drawImage(I,0,0,null);
    public static void main (String[] args) 
         new ecg();
    }

    Compiling your posted code gives a compiler warning:
    C:\jexp>javac ecg.java
    Note: ecg.java uses unchecked or unsafe operations.
    Note: Recompile with -Xlint:unchecked for details.
    C:\jexp>javac -Xlint:unchecked ecg.java
    ecg.java:31: warning: [unchecked] unchecked call to add(E) as a member of the raw type jav
    a.util.Vector
                vr.add(new Point(0,p-130));
                      ^
    1 warningWe can eliminate this by changing this
        Vector vr   = new Vector();to this
        Vector<Point> vr   = new Vector<Point>();The best way to understand things like this is to start a new file and slowly build it up so you can see what's going on, step-by-step. I've put in some comments and print statements to give you a start.
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    import java.awt.image.BufferedImage;
    import java.awt.geom.*;
    import java.math.*;
    import java.util.*;
    public class ECG extends JFrame
        myView view = new myView();
        Vector<Point> vr = new Vector<Point>();
        int    ho   = 0;
        public ECG()
            addWindowListener(new WindowAdapter()
                @Override
                public void windowClosing(WindowEvent ev)
                    dispose();
                    System.exit(0);
            // Initialize data in Vector.
            for (int i=0; i < 5000; i++)
                int p = (int)(Math.random() * 260); // range: (0    - 260]
                vr.add(new Point(0, p-130));        // range: (-130 - 130]
            System.out.println("Total number of data points: " + vr.size());
            setBounds(3,10,625,350);
            // Component drawing space is 600 wide by 300 high.
            view.setBounds(10,10,600,300);
            getContentPane().add(view);
            getContentPane().setLayout(null);
            setVisible(true);
            // Animate up thru the first 200 of 5000 data points.
            int millisPerSecond = 1000;
            long delay = 110;
            long framesPerSecond = millisPerSecond/delay;
            System.out.printf("Frames per second: %d%n", framesPerSecond);
            int paintSteps = 600;
            int dataIndex = 200;
                            //5000 -1 - paintSteps;  // max possible index
            System.out.printf("Expected animation time: %f seconds%n",
                               (double)dataIndex/framesPerSecond);
            long start = System.currentTimeMillis();
            // Animation loop.
            while (ho < dataIndex)
                try
                    Thread.sleep(delay);
                    // Increment "ho" which will step us through the Vector data.
                    // Each new value draws the Vector graph data starting at
                    // index "ho" placed at the left edge of the image/component.
                    ho = ho + 1;
                    long end = System.currentTimeMillis();
                    double elapsedTime = (double)(end - start)/millisPerSecond;
                    if(ho % 100 == 0)
                        System.out.printf("ho: %d  time: %.2f%n", ho, elapsedTime);
                    // Update the image in the paint method.
                    repaint();
                } catch (InterruptedException e) {
                    System.out.println("animation interrupted");
            long end = System.currentTimeMillis();
            double elapsedTime = (double)(end - start)/millisPerSecond;
            System.out.printf("Total animation loop time: %f%n", elapsedTime);
        public class myView extends JPanel
            BufferedImage I;
            Graphics2D    G;
            public void paint(Graphics g)
                if (I == null)  // initializw image
                    I = new BufferedImage(getWidth(),getHeight(),
                                          BufferedImage.TYPE_INT_ARGB);
                    G = I.createGraphics();
                // Update image to show current state of animating graph.
                // Fill Background color.
                G.setColor(Color.white);
                G.fillRect(0,0,getWidth(),getHeight());
                // Set graph line color.
                G.setColor(Color.gray);
                // Draw next data segment to newly-erased image.
                // Get two points in data to draw the next line.
                Point p1,p2;
                // "ho" is a simple counter with range [0 - n-1]
                // [0 - 200-1] in the animation loop above.
                // Get the next data point at "ho" which will be drawn at
                // the beginning, ie, left edge (x = 0), of the image.
                p1 = vr.get(ho);
                int x = 0;
                // Since each frame starts at zero_x relative to the image:
                // x = 0.
                // Draw all graph data for this one 600 by 300 image frame
                // with data beginning at index "ho".
                for (int y=1; y < 600; y++)
                    // Get the next point out ahead.
                    p2 = vr.get(y+ho);
                    // Draw a line from the last point, p1, to the next point, p2,
                    // which will be spaced (x +=) 6 apart along the image/component
                    // width of 600 (setBounds). Translate the y values down onto
                    // the component by 150 pixels (the range of y values from
                    // above is from -129 to 130). The "+150" shifts the y values
                    // to the approximate center of the component.
                    G.drawLine(x, p1.y+150, x+6, p2.y+150);
                    // Save the current point to/in p1 for the next iteration.
                    p1 = vr.get(y+ho);
                    // Move along to the right in the image.
                    x = x + 6;
                // Draw image in component.
                g.drawImage(I,0,0,null);
        public static void main (String[] args)
            new ECG();
    }

  • Comment effacer à la gomme une couleur unique prélevée à la pipette ?

    Je renouvelle la question postée précédemment sur le forum " photoshop first publish " en anglais ;
    Comment sélectionner une couleur unique à effacer d'un calque en préservant le reste des couleurs par application du mode forme de l'outil gomme ?
    Je voudrais pouvoir prélever une couleur unique à la pipette et l'effacer avec la gomme, pour par exemple améliorer la finition d'un contour objet séléctionné avec la baguette magique ou isolé avec la gomme magique.
    Sur les exemples de démonstrations du site, cela serait par exemple de supprimer le rouge du phare en utilisant la gomme et la pipette ; ce qui doit être possible ( j'ai déjà vu cette applications sur des versions plus anciennes de ce genre de logiciels )
    SVP merci
    SVP Merci

    Bonjour Ttro,
    Je suis en vacances et c'est par hasard que je lis ta question. Je ne suis pas un spécialiste mais la sélection d'une couleur (plus ou moins étendue) peut se faire par la sélection d'une plage de couleurs .
    Après ouverture de l'outil Plage de couleurs, tu peux utiliser la sélection des couleurs ou cliquer avec la pipette sur la couleur à effacer  et jouer avec le curseur "Tolérance".
    Une fois la couleur sélectionnée, tu peux l'effacer avec la touche retour ou la gomme.
    Exemple sélection de la couleur rouge.
    J'espère que ceci t'aidera.
    Andres

  • TRIGGER avec Fenetre POP UP

    Bonjour à tous,
    évoluant sous Labview depuis peu, je rencontre un probleme sur un programme de trigger. En effet, tout par d'un programme plus grand d'acquisition de données analogiques suivant certaines conditions définies par un experiment que l'on peut creer sauvegarder et charger. Jusque là, tout va bien. L'acquisition des données se passe aussi bien. Seulement l'ajout de la fonction trigger se fait comme suit:
    - A la page des graphes d'acquisition simple des données analogiques, il y'a un bouton qui sur appui fait apparaitre une fenetre pop up du trigger.
    -A l'apparition de cette fenetre, on peut choisir les parametres de trigger que l'on souhaite ( pretrigger, condition trigger, samples,..) puis en appuyant sur Trigger la recherche du trigger commence.
    -Il y'a 3 graphes sur cette fenetre ( 1 graphe pour la visualisation en cours de toutes les voies analogiques disponibles, 1 graphe pour visualisation des voies analogiques que l'on souhaite suivant l'experiment chargé plus haut ( VI principal) et 1 troisieme graphe qui fera apparaitre les variables que lorsque la condition de trigger est remplie.
    -Une fois qu'on visualise les données trigguées, en appuyant sur le bouton Triggered , une autre fenetre POP UP doit apparaitre pour montrer un graphe plus grand mais qui est celui du 3e gaphe des données triguées.
    -Puis, on doit pouvoir refermer les fenetre une à une pour revenir au VI principal.
    Seulemnt voici les problemes que j erencontre:
    1-La 2e fenetre pop up ne me donne pas un graphe plus avec les données trigguées sur tout le graphe mais que le debut
    2- en refermant cette fenetre en appuyant sur quitter, j'ai plus acces à la premiere fenetre pop up.
    3- J'arrive pas faire autant de trigger sur ma premiere fenetre pop up avant de repasser dans mon VI principal.
    4- les condition de trigger ( Rising edge, failling edge,...) ne sont pas parfaits il me donne pas toujours ce qui est juste.
    J'ai mis en piece jointe la partie trigger ( les 2 fenetres POP UP) sans le main  VI parce qu'il est trop lourd compliqué et volumineux 
    Merci de me donner votre point de vue sur les erreurs que j'aurais dans mon code ainsi que des problemes à resoudre.
    Attachments:
    projet_trigger.zip ‏171 KB

    It is very difficult to see what your code does because it takes up so much space on the screen. However, it looks like you need to better understand how to pass data to a subVI, and how the event structure works.
    I think you are expecting the graph to update inside your pop-up window. When you open the second pop-up window, it makes a copy of the graph data at that moment, and that's the data that is displayed. If you need to send new data to the subVI while it is running, use a queue.
    An event structure only executes once per loop iteration, and it doesn't finish until everything inside it finishes, so a loop can't proceed to the next iteration if an event case is running. When you click the "Triggered" button, it opens the pop-up, and then it sits there until the pop-up is closed. The parallel acquisition loop keeps running, but the user interface will not respond because you have checked "Lock the front panel until this event case completes" in the event structure. When you close the pop-up, you cannot then click the triggered button again until the acquisition loop finishes, which will let the big overall loop.

  • Probleme de synchronisation iphone avec itunes

    itunes m'affiche le message suivant : cet iphone est synchronisé avec une autre bibliothèque, voulez-vous effacer et synchroniser avec la nouvelle bibliothèque ? Si je réponds OUI, y a-t-il un risque de perte de données sur mon iphone, à savoir les contacts, les messages, .... ou ne chargera-t-il que la nouvelle musique (j'ai effectivdement changé ma bibliothèque de musiques). Merci

    Ideally, your music on the phone should be empty and when you enable match it will play off air (If you will)
    Try to clean your phone first in few steps
    1. Turn off itunes match on the phone only.
    2. Delete music from the phone completely (hopefully you know how)
    3. Enable itunes match again and you should be OK.
    Sorry for using Google translate.
    Idéalement, votre musique sur le téléphone doit être vide et lorsque vous activez le match, vous pourrez jouer hors d'air (si vous voulez)
    Essayez de nettoyer votre premier téléphone en quelques étapes
    1. Éteignez itunes match sur le téléphone uniquement.
    2. Supprimer la musique du téléphone complètement (j'espère que vous savez comment)
    3. Activer iTunes Match à nouveau et vous devriez être OK.

  • Enregistrer l'image d'un graphe 3d ou la face avant du vi

    Bonjour à tous,
    J'utilise labview 2011, mon VI trace un graphe 3d avec différentes mesure, je voudrais enregistrer l'image du graphe 3d ou de la face avant directement dans un fichier.
    Est ce possible ou il y a t il des solutions alternative autre que l'imprim écran?
    merci de vos réponses
    Solved!
    Go to Solution.

    je joins une capture d'écran du noeud de méthode
    Attachments:
    vi marbre.JPG ‏26 KB

  • Question : Peut-on écrire un fichier TDMS avec les données du graphique XY?

    Bonjour,
    J'aimerais mettre dans un fichier tous les paramètres de mon essai, mais aussi toutes les données de mon graphique XY qui sont 2 tableaux 2D (de 25000 lignes et 2 colonnes).
    J'avais pensé à y mettre dans un fichier TDMS pour archiver toutes les données.
    Ma question est peut-on ajouter dans un fichier TDMS les données d'un graph XY de la même façon que "exporter les données vers excel"?
    Merci d'avance pour vos réponses

    Bonjour alexandrefcsm,
    Désolé pour le temps de réponse j'était en formation toute la semaine dernière,
    Tu n'a pas besoin de déroulé completement tes tableaux pour les mettre dans les fichiers TDMS juste déroulé ton graph en 2 tableau 2D puis extraire les colonnes. Je t'ai fait un VI simple qui permet de stocker des données d'un tableau 2D colonne par colonne ce qui devrais convenir pour ton application.
    En espérant que cela résoude ton problème,
    Cordialement
    Louis
    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 :
    TDMS_GraphXY.vi ‏22 KB

  • 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 !)

Maybe you are looking for