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 :

Récupérer le point abscisse pour chaque ordonnée sur un histogramme [Débutant]


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Récupérer le point abscisse pour chaque ordonnée sur un histogramme
    bonjour a tous;

    j'ai graphe(un histogramme cumulé pour mon cas) et je voudrais récupérer les points abscisses x pour chaque ordonnée Y.
    en gros je fixe y (ordonnée) et je voudrais avoir x (abscisse)

    j'ai tenté un tas de fonctions mais ca marche pas.
    merci de m'aider

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Cela dépend de comment tu as tracé ton histogramme, mais tu peux essayer quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    histo = get(gca,'children');
    X = get(histo,'xdata');
    Y = get(histo,'ydata');
    Voir, si tu as fait le tracé avec une des fonctions hist, récupérer les arguments de sortie.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    re bonjour
    merci d'avoir répondu aussi vite .

    voila mon problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    V = 255.*rand(10000,1);
    h=hist(V,255); %hitogramme de V
    Pu=h./sum(h) ; %histogramme normalisé
    l=length (Pu);
    cumul=zeros(size(Pu));
    cumul(1)=Pu(1);
     
    for i=1:1:l-1
        cumul(i+1)=cumul(i) + Pu(i+1); % histogramme cumulé 
    end 
     
    plot(cumul,'r')
    title ('graphe histo cumulé')
    mon problème c'est que par exemple j'ai y=0.1 je voudrais avoir le x correspondant sur le graphe 'histo cumulé'

    merci de votre aide

  4. #4
    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
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    une première approximation étant en utilisant intep1 si tes points sont suffisamment rapprochés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = interp1(cumul,1:255,0.1)
    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.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    ah je crois que ca marche!!
    merci bcp !! mes respects!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ou peut-être aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    V = 255*rand(10000,1);
    [n xout] = hist(V,0:255);
    cumul = cumsum(n)/sum(n);
    plot(xout,cumul,'r')
    title ('graphe histo cumulé')

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    Ou peut-être aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    V = 255*rand(10000,1);
    [n xout] = hist(V,0:255);
    cumul = cumsum(n)/sum(n);
    plot(xout,cumul,'r')
    title ('graphe histo cumulé')

    bonsoir,
    oui c'est juste ce que vous avez écrit mais moi mon objectif c'est de fiver y et de trouver x.par exemple je fixe y=0.01 et je dois trouver x.

    merci pour votre réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un titre pour chaque barre de l'histogramme
    Par sebouier dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 16/03/2011, 15h48
  2. Où récupérer des images .NET pour virtual PC sur msdn ?
    Par raton_laveur dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 17/05/2010, 21h56
  3. Réponses: 7
    Dernier message: 05/01/2007, 14h14
  4. Réponses: 3
    Dernier message: 23/01/2004, 21h02

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