IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Data Cursor intersection de 2 courbes dans un plot


Sujet :

MATLAB

  1. #1
    Membre Expert Avatar de lecteur1001
    Inscrit en
    Mai 2009
    Messages
    1 526
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1 526
    Par défaut Data Cursor intersection de 2 courbes dans un plot
    Bonjour,

    je souhaite savoir s'il est possible, lors de la génération d'un plot comportant 3 courbes, d'insérer automatiquement un "data cursor" pour chaque intersection de la courbe 1 avec les courbes 2 et 3...
    Vous voyez ce que j'aimerai ?...

    Merci à vous
    À lire avant de poster : qu'est ce qu'un ECM (Exemple Complet Minimal) ?
    Règles des forums LaTeX. Quand votre problème est réglé, mettez votre discussion en
    Pour débuter en LaTeX je conseille fortement Tout ce que vous avez toujours voulu savoir sur LaTeX sans jamais oser le demander (merci Woody Allen ), livre téléchargeable gratuitement ou en vente dans le commerce pour 15 €

  2. #2
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Que veux tu dire par "data cursor" ?

    Est-ce que tu veux mettre en relief le point d'intersection des trois courbe

  3. #3
    Membre Expert Avatar de lecteur1001
    Inscrit en
    Mai 2009
    Messages
    1 526
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1 526
    Par défaut
    Dans une figure générée par un plot, tu peux insérer avec la souris un "data cursor'. Ça affiche les coordonnées d'un point désiré.
    Moi en ce qui me concerne, j'ai 3 courbes (courbe 1, 2 et 3). Ce que je souhaite c'est que tous les points d'intersection entre la courbe 1 et 2 soient mis en relief automatiquement par un data cursor. Je voudrai que ce soit de même avec la courbe 1 et 3.

    J'espère être clair
    À lire avant de poster : qu'est ce qu'un ECM (Exemple Complet Minimal) ?
    Règles des forums LaTeX. Quand votre problème est réglé, mettez votre discussion en
    Pour débuter en LaTeX je conseille fortement Tout ce que vous avez toujours voulu savoir sur LaTeX sans jamais oser le demander (merci Woody Allen ), livre téléchargeable gratuitement ou en vente dans le commerce pour 15 €

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Voici un code que j'ai essayé et ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    x=linspace(-3*pi, 3*pi, 200);
     
    y1=cos(x);
    y2=sin(x);
     
    isec = find(abs(y2-y1)<0.065) ;
     
     
    hold on ;
     
    plot(x, y1, '-')
    plot(x, y2, 'g')
    plot(x(isec), y1(isec), 'ro')
     
    hold off
     
    axis([-3*pi 3*pi -2 2])
    legend('Y1', 'Y2');
    grid ;
    Pareil pour trois fonction, voir plus ...

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Je devines ta nouvelle question, la réponse est ici >>

  6. #6
    Membre Expert Avatar de lecteur1001
    Inscrit en
    Mai 2009
    Messages
    1 526
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1 526
    Par défaut
    Tu vas me trouver chiant, mais ça ne correspond pas encore à ce que je souhaite : tu as effectivement réussi à trouver comment mettre en valeur l'intersection de 2 courbes mais ce que je veux c'est que les coordonnées de ces points apparaissent.
    Voir ci-joint ce que j'aimerai.

    Merci à toi pour le temps précieux que tu me fournis
    Images attachées Images attachées  
    À lire avant de poster : qu'est ce qu'un ECM (Exemple Complet Minimal) ?
    Règles des forums LaTeX. Quand votre problème est réglé, mettez votre discussion en
    Pour débuter en LaTeX je conseille fortement Tout ce que vous avez toujours voulu savoir sur LaTeX sans jamais oser le demander (merci Woody Allen ), livre téléchargeable gratuitement ou en vente dans le commerce pour 15 €

  7. #7
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Comment tu as fais pour obtenir l'intersection ?

  8. #8
    Membre Expert Avatar de lecteur1001
    Inscrit en
    Mai 2009
    Messages
    1 526
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1 526
    Par défaut
    Ben je place un "data cursor" la courbe de gauche, je clique droit sur le data cursor et je vais dans "selection style" et je coche "mouse position". Ensuite je le glisse jusqu'à l'intersection avec l'autre courbe.
    Pour insérer un 2e data cursor, il faut utiliser la touche "Alt"+clic sur la courbe sélectionnée.

    Tu ne connaissais pas le principe de ce fameux data cursor ?
    À lire avant de poster : qu'est ce qu'un ECM (Exemple Complet Minimal) ?
    Règles des forums LaTeX. Quand votre problème est réglé, mettez votre discussion en
    Pour débuter en LaTeX je conseille fortement Tout ce que vous avez toujours voulu savoir sur LaTeX sans jamais oser le demander (merci Woody Allen ), livre téléchargeable gratuitement ou en vente dans le commerce pour 15 €

  9. #9
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Voici un code rapidement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    x=linspace(-3*pi, 3*pi, 200);
     
    y1=cos(x);
    y2=sin(x);
     
    isec = find(abs(y2-y1)<0.065) ;
     
     
    hold on ;
     
    plot(x, y1, '-')
    plot(x, y2, 'g')
     
    plot(x(isec), y1(isec), 'ro')
     
    hold off
     
    axis([-3*pi 3*pi -2 2])
    legend('Y1', 'Y2');
    grid ;
     
    for i=1:length(isec)
        text('FontWeight', 'Bold', 'FontSize', 7, ...
            'Position', [x(isec(i))+0.3, y1(isec(i)), 0], ...
            'String', sprintf('X: %3.2f\nY: %3.2f', x(isec(i)), y1(isec(i))));
    end
    Il reste à penser pour remplacer le for par une autre solution plus correcte !! Faire une vectorisation

  10. #10
    Membre Expert Avatar de lecteur1001
    Inscrit en
    Mai 2009
    Messages
    1 526
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1 526
    Par défaut
    Ok, c'est déjà beaucoup mieux

    J'essaie d'adapter mon code par rapport à ce que tu me donnes et si je bloque je viendrai te poser les questions.

    Merci encore !
    À lire avant de poster : qu'est ce qu'un ECM (Exemple Complet Minimal) ?
    Règles des forums LaTeX. Quand votre problème est réglé, mettez votre discussion en
    Pour débuter en LaTeX je conseille fortement Tout ce que vous avez toujours voulu savoir sur LaTeX sans jamais oser le demander (merci Woody Allen ), livre téléchargeable gratuitement ou en vente dans le commerce pour 15 €

  11. #11
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Citation Envoyé par lecteur1001 Voir le message
    et si je bloque je viendrai te poser les questions.

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,

    Il existe des fonctions sur le file exchange pour calculer les points d'intersection de 2 courbes à partir d'une série de point :
    Fast and Robust Curve Intersections ou Curve Intersect 2
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  13. #13
    Membre Expert Avatar de lecteur1001
    Inscrit en
    Mai 2009
    Messages
    1 526
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1 526
    Par défaut
    Citation Envoyé par magelan Voir le message
    Il existe des fonctions sur le file exchange pour calculer les points d'intersection de 2 courbes à partir d'une série de point :
    Fast and Robust Curve Intersections ou Curve Intersect 2
    Très bien, je vais y jeter un œil ! Merci
    À lire avant de poster : qu'est ce qu'un ECM (Exemple Complet Minimal) ?
    Règles des forums LaTeX. Quand votre problème est réglé, mettez votre discussion en
    Pour débuter en LaTeX je conseille fortement Tout ce que vous avez toujours voulu savoir sur LaTeX sans jamais oser le demander (merci Woody Allen ), livre téléchargeable gratuitement ou en vente dans le commerce pour 15 €

Discussions similaires

  1. Couper une courbe dans un plot (GUI)
    Par preto91 dans le forum Interfaces Graphiques
    Réponses: 22
    Dernier message: 30/01/2014, 14h45
  2. programmation data cursor dans GUI?
    Par jponsoda dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 22/06/2010, 11h04
  3. Réponses: 7
    Dernier message: 22/10/2007, 18h57
  4. [HTML] afficher des courbes dans un tableau html ?
    Par MAJIK_ENIS dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 10/05/2006, 15h19
  5. Intersection de deux courbes quelconques
    Par ShootDX dans le forum Algorithmes et structures de données
    Réponses: 32
    Dernier message: 31/03/2006, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo