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 :

[plot] La fonction ne relie pas mes points


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 49
    Par défaut [plot] La fonction ne relie pas mes points
    Bonjour,

    je dois tracer sur le même graphe plusieurs courbes mais je n'arrive pas à comprendre pourquoi Matlab ne veux pas me relier les points
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    %% Daten Einlesen
    %Eintrittsdaten fuer T = "N65" 
    %[pt_Eintritt,Tt_Eintritt,ps_Eintritt,Drehzahl,R,gamma,cp,p_isa,T_isa]=textread('N65.map','%f %f %f %f %f %f %f %f %f','headerlines',1);
    %Daten=[pt_Eintritt,Tt_Eintritt,ps_Eintritt,Drehzahl,R,gamma,cp,p_isa,T_isa];
     
    %%DATA IMPORT
    N65korr=importdata('N65_korr.map');
    N65=N65korr.data;
    rho=N65(1,9)/(N65(1,6)*N65(1,10));
    for n=0:8
    Filename = sprintf('N65_Scan%d_exp.map',n)
    N65EXP0=importdata(Filename);
    XP0=N65EXP0.data;
    THETA0(:,n+1) = XP0(:,1);
    RADIUS0(:,n+1) = XP0(:,2);
    Pt0(:,n+1) = XP0(:,3);
    Tt0(:,n+1) = XP0(:,4);     
    %Erstellung von EXITPLANES TOTALDRUCK, TOTALTEMPERATUR
    % for i=1:600
    % THETA0(i,1)=XP0(i,1);
    % RADIUS0(i,1)=XP0(i,2);
    % Pt0(i,1)=XP0(i,3);
    % Tt0(i,1)=XP0(i,4);
    % end
     
    %Fur die Radial Profilen
    %for n=0:8
        %for i=1:600
     
        %end
    %end
    % [x,y]=pol2cart(THETA0,RADIUS0);
    % rint=min(RADIUS0);
    % rext=max(RADIUS0);
    % [R,T] = meshgrid(linspace(rint,rext,300),linspace(min(THETA0),max(THETA0),300));
     
    % Interpolation dans repere polaire (domaine convexe)
    zi=griddata(RADIUS0,THETA0,Pt0,R,T,'cubic');
    %zi = griddata(RADIUS0,THETA0,Tt0,R,T,'cubic');
     
    [X,Y] = pol2cart(T,R);
     
    figure(1)
    %contourf(X,Y,zi,40)
    surf(X,Y,zeros(size(X)),zi,'edgecolor','none')
    colorbar
    view(2)
    axis equal tight
    figure(2)
    hold all
    for k=1:15:size(Pt0,1)
        plot(Pt0(k:k+14),RADIUS0 (k:k+14),'LineWidth',2);
        size all
    end% for k=1:size(Pt0,1)
    %     hold all
    %     for l=k:15:size(Pt0,1)
    %         plot(Pt0(l,1),RADIUS0 (l,1),'-r','LineWidth',2);
    %         hold on
    %     end
    % end
    %Pt Matrix erstellen mit i=Radius und j=THETA
    Ptmat=reshape(Pt0,40,15);
     
    %%Aehnlichkeitsbeziehungen der Betriebspunkte aus N65korr.map
    %Drehzahlgleichheit
    % for i=1:9
    % Gamma(i,1)=N65(i,7);
    % R(i,1)=N65(i,6);
    % T_mess(i,1)=N65(i,2);
    % T_isa(i,1)=N65(i,10);
    % a_mess(i,1)=(Gamma(i,1).*R(i,1).*T_mess(i,1)).^0.5;
    % a_isa(i,1)=(Gamma(i,1).*R(i,1).*T_isa(i,1)).^0.5;
    % n_welle(i,1)=N65(i,4);
    % n_cor(i,1)=n_welle(i,1).*a_isa(i,1)./a_mess(i,1);
    % %u_isa=u_mess*a_isa/a_mess --> n_cor=n_mess*a_isa/a/mess
    %  
    % %Massenstromgleichheit
    % p_s(i,1)=N65(i,3);
    % p_isa(i,1)=N65(i,9);
    % rho_isa(i,1)=p_isa(i,1)./(R(i,1).*T_isa(i,1));
    % rho_mess(i,1)=p_s(i,1)./(R(i,1).*T_mess(i,1));
    % m_cor(i,1)=m_welle(i,1)*rho_isa(i,1)./rho_mess(i,1).*a_isa(i,1)./a_mess(i,1);
     
    %%Mittellung
    Atot=polyarea(x,y)/1000000;%rext=190mm und rint=120mm
    % %Arithmetisches
    % G=sum(zi,2);
    % H=sum(G,1);
    % Pt2=H/(size(zi,1)*size(zi,2));
    %Flaechenmittelung
    Aj=Atot/4000;
    zibis=zi*Aj;
    G=sum(zibis,2);
    H=sum(G,1);
    Pt2=H/(size(zi,1)*size(zi,2)*Aj);
    %Massenstrommittelung
    Mj=m_welle/4000;
    zitris=zi*Mj;
    G=sum(zitris,2);
    H=sum(G,1);
    Pt2=H/(size(zi,1)*size(zi,2)*Mj);
     
     
    %%Aehnlichkeitsbeziehungen der Betriebspunkte aus N65korr.map
    %Drehzahlgleichheit
    for i=1:9
    Gamma(i,1)=N65(i,7);
    R(i,1)=N65(i,6);
    T_mess(i,1)=N65(i,2);
    T_isa(i,1)=N65(i,10);
    a_mess(i,1)=(Gamma(i,1).*R(i,1).*T_mess(i,1)).^0.5;
    a_isa(i,1)=(Gamma(i,1).*R(i,1).*T_isa(i,1)).^0.5;
    n_welle(i,1)=N65(i,4);
    n_cor(i,1)=n_welle(i,1).*a_isa(i,1)./a_mess(i,1);
    %u_isa=u_mess*a_isa/a_mess --> n_cor=n_mess*a_isa/a/mess
     
     
     
    %Massenstromgleichheit
     
     
    p_s(i,1)=N65(i,3);
    p_isa(i,1)=N65(i,9);
    rho_isa(i,1)=p_isa(i,1)./(R(i,1).*T_isa(i,1));
    rho_mess(i,1)=p_s(i,1)./(R(i,1).*T_mess(i,1));
    m_cor(i,1)=m_welle(i,1)*rho_isa(i,1)./rho_mess(i,1).*a_isa(i,1)./a_mess(i,1);
     
    end
    end
    Chaque courbe correspond à des points qui ont comme abscisse des valeurs stockées tous les 15 valeurs de Pt0 (en fait je dois tracer l'évolution de Pt0 en fonction du rayon pour un rayon donné). Les points d'un même rayon sont donc placés toutes les 15 valeurs. Qaund j'execute mon code en revanche j'obtient les points non reliès. Comment les relier et avoir ainsi plusieurs courbes de différentes couleurs? J'ai essayé en suivant la notice dans Matlab mais j'obtient tjs le même problème

    merci beaucoup

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Essaye de remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for k=1:size(Pt0,1)
        hold all
        for l=k:15:size(Pt0,1)
            plot(Pt0(l,1),RADIUS0 (l,1),'-r','LineWidth',2);
            hold on
        end
    end
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    hold all
    for k=1:size(Pt0,1)
        plot(Pt0(k:15:size(Pt0,1),1),RADIUS0 (k:15:size(Pt0,1),1),'LineWidth',2);
    end
    Mais je suis pas sûr de bien comprendre le fonctionnement de ton truc...

    Duf

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 49
    Par défaut
    en fait je dois obtenir et chaque courbe correspond à des points de la matrice Pt0 et Radius qui sont espacés de 15 lignes (dans les matrices respectives)

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Citation Envoyé par duf42 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    hold all
    for k=1:size(Pt0,1)
        plot(Pt0(k:15:size(Pt0,1),1),RADIUS0 (k:15:size(Pt0,1),1),'LineWidth',2);
    end
    Je ferais plutôt ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    hold all
    for k=1:size(Pt0,1)/15
        plot(Pt0(k:15:end),RADIUS0 (k:15:end),'LineWidth',2);
    end
    Non ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 49
    Par défaut
    le soucis c'est que les points ne sont pas reliés entre eux et je ne comprend pas pourquoi....

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

    Le code de Dut relie certains points, mais si tu dis cela, je présume que ce ne sont pas les bons...
    Est-ce que ceci correspond mieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    hold all
    for k=1:15:size(Pt0,1)
        plot(Pt0(k:k+14),RADIUS0 (k:k+14),'LineWidth',2);
    end
    Ou version sans boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot(reshape(Pt0,15,[]),reshape(RADIUS0,15,[]),'LineWidth',2);
    ?
    Si ce n'est toujours pas cela, quels sont les points à relier ensemble?
    • Le code de Dut, que j'aurais plutôt vu en
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      hold all
      for k=1:15
          plot(Pt0(k:15:end),RADIUS0 (k:15:end),'LineWidth',2);
      end
      sous peine de prendre plusieurs fois certains points, relie
      Pt0(1) - Pt0(16) - Pt0(31) - ... - Pt0(586) 
      Pt0(2) - Pt0(17) - Pt0(32) - ... - Pt0(587)
      ...
    • Mon code relie
      Pt0(1) - Pt0(2) - Pt0(3) - ... - Pt0(15)
      Pt0(16) - Pt0(17) - Pt0(18) - ... - Pt0(30) 
      ...

    Que voudrais-tu relier toi?

    PS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i=1:600
        THETA0(i,1)=XP0(i,1);
        RADIUS0(i,1)=XP0(i,2);
        Pt0(i,1)=XP0(i,3);
        Tt0(i,1)=XP0(i,4);
    end
    Peut être remplacé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    THETA0 = XP0(:,1);
    RADIUS0 = XP0(:,2);
    Pt0 = XP0(:,3);
    Tt0 = XP0(:,4);

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 49
    Par défaut
    winjerome et Dut merci pour vos conseils. En fait winjerome j'ai une question à savoir que j'ai des courbes qui gardent la même couleurs pour plusieurs groupes de valeurs (la suite de 15 valeurs). Comment je peux éviter d'avoir deux courbes de même couleur?

Discussions similaires

  1. IE8 ne supporte pas mes fonctions jQuery
    Par mainContainer dans le forum jQuery
    Réponses: 3
    Dernier message: 31/08/2012, 20h23
  2. [Débutant] Impossible de relier mes points avec plot
    Par clem3900 dans le forum MATLAB
    Réponses: 12
    Dernier message: 29/06/2012, 11h38
  3. [GRAPH] PROC GPLOT : pas de lien entre mes points
    Par traersa dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 18/10/2011, 10h32
  4. tomcat ne reconnait pas mes fonctions
    Par hypothese dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 29/05/2008, 11h04
  5. La fonction BuilCriteria n'accepte pas les points
    Par Tofalu dans le forum Access
    Réponses: 3
    Dernier message: 10/07/2006, 12h00

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