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 :

tracé de courbes superposées à partir de matrices


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Points : 63
    Points
    63
    Par défaut tracé de courbes superposées à partir de matrices
    Bonjour a tous,
    j'ai un nombre de matrice (M1.....M6) de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    M=[0 0 1 0;0 0 0 1;0 0 1 0; 0 1 0 0; 1 0 0 0]
     
    M =
     
         0     0     1     0
         0     0     0     1
         0     0     1     0
         0     1     0     0
         1     0     0     0
    quand j'affiche j'ai une image noir et le 1 c le blanc mais moi je veux représenter les 6 traits (les pixel ayant le nombre 1) comme courbes superposés sur un même graphe
    je trouve pas l'idée comment faire le code, quelqu'un peux m'aider??

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 318
    Points : 52 924
    Points
    52 924
    Par défaut
    Citation Envoyé par helaaa Voir le message
    je veux représenter les 6 traits
    Tu peux nous expliquer comment tu obtiens "6 traits" avec une matrice 5x4 ?

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Points : 63
    Points
    63
    Par défaut
    ah non non j'ai 6 matrice M1, M2, M3, M4, M5 et M6 différente mais de la même forme (juste les chiffre 1 sont localisés à des indices différents ) mais déjà je veux trouver comment représenté la courbe pour une matrice et apres c facile de superposé

    j'ai essayer de cherché les 1 par une boucle sur toutes la matrice mais ça mène à rien

    en pièce jointe la courbe que je veux obtenir pour l'exemple de la matrice que j'ai mis tt a l heure

    merci

  4. #4
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Une courbe, c'est une ordonnée en fonction d'une abscisse. Donc déjà, est-ce que tu pourrais nous dire ce que tu cherches à plotter exactement? C'est à dire, quelle est ton ordonnée et quelle est ton abscisse?

    Après, peut-être que je n'ai pas compris ce que tu cherches à faire...

    ++

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 90
    Points : 100
    Points
    100
    Par défaut
    Si j'ai bien compris il te faut une fonction dans ce style :


    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
    function plot_mat (M)
    
    
    
    c=1;    
    [m,n]=size (M);     
    
    
    for i=1:m
        for j=1:n
            if M(i,j) == 1
                x(c)=j;
                y(c)=m-i+1;
                c=c+1;
            end
        end
    end
    
    plot(x,y)


    Dis moi si cela te conviens.

    Bon courage.

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Points : 63
    Points
    63
    Par défaut
    les abscisses sont les colonnes (de 1 à 4 ds l'exemple ci dessus de la matrice M) et l'ordonnée c'est les lignes (de 1à 5) , je lis tout les chiffre 1 sur la matrice par une courbe et j'obtiens donc (pour l'exemple de M) une courbe comme celle sur le doc word ci dessus

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 90
    Points : 100
    Points
    100
    Par défaut
    Et pour toutes les tracer sur un meme graph :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    figure()
    hold on
    plot_mat(M1)
    plot_mat(M2)
    plot_mat(M3)
    plot_mat(M4)
    plot_mat(M5)
    plot_mat(M6)
    hold off

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Points : 63
    Points
    63
    Par défaut
    merci, c'est très bien
    ma boucle ne faisait rien et là je vois pourquoi !!! :p

  9. #9
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 318
    Points : 52 924
    Points
    52 924
    Par défaut
    Je pense que la solution est plus rigoureuse comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    M=[0 0 1 0;0 0 0 1;0 0 1 0; 0 1 0 0; 1 0 0 0];
     
    [x,y] = find(M.');
     
    figure
    plot(x,y)
    axis ij
    Le pixel (1,1) est celui situé en haut à gauche dans le repérage classique des images.

    Ce qui donne bien en superposant l'image et la courbe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    M=[0 0 1 0;0 0 0 1;0 0 1 0; 0 1 0 0; 1 0 0 0];
     
    [x,y] = find(M.');
     
    figure
    colormap(gray)
    imagesc(M)
    hold on
    plot(x,y,'r-')
    axis image
    Images attachées Images attachées  

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sri Lanka

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 191
    Points : 63
    Points
    63
    Par défaut
    ahhhh ouiiii, j'ai pas vu cette solution, c'est vrai qu'elle est meilleurs surtout pour le cas réel de matrices sur lesquelles je fais le test, mais ce qui me dérange c'est que je veux pas laisser en image, car je peux pas superposer les 6 comme je l'ai expliqué la haut??? y'a t'il une solution pour ça en laissant cette méthode????

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

Discussions similaires

  1. Tracé plusieurs courbes à partir d'une boucle
    Par jal13 dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/02/2010, 18h35
  2. Tracé de courbe + Régression linéaire
    Par AC88mm dans le forum MATLAB
    Réponses: 4
    Dernier message: 02/05/2007, 15h27
  3. Réponses: 10
    Dernier message: 18/04/2007, 10h39
  4. tracé de courbe xy avec mschart
    Par legos dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/09/2006, 16h30
  5. Tracé de courbes ou graphe
    Par dridri86 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 11/04/2006, 17h51

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