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é d'une courbe en 3D [Débutant]


Sujet :

MATLAB

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut Tracé d'une courbe en 3D
    Bonjour,

    Mon problème est le suivant:

    J'ai une liste de points qui définissent ma grille de coordonnées ainsi que l'image de ces derniers. Je me retrouve ainsi avec une matrice à 3 colonnes (X,Y,Z). Mon problème est que mes coordonnées ne sont pas réguliérement espacées, ce qui fait que je n'arrive pas à tracer la courbe. Quelqu'un peut il m'aider??? . Ma matrice est la suivante:

    A =

    8,00E+01 1,40E+02 6,61145E-07
    8,00E+01 1,56E+02 3,42572E-06
    9,00E+01 1,40E+02 1,88792E-05
    9,00E+01 1,50E+02 0,09923999
    9,00E+01 1,50E+02 0,099508324
    9,00E+01 1,50E+02 0,09923999
    9,00E+01 1,56E+02 0,000578976
    9,25E+01 1,50E+02 0,168913024
    9,25E+01 1,50E+02 0,168897025
    9,25E+01 1,50E+02 0,168913024
    9,50E+01 1,50E+02 0,191911451
    9,50E+01 1,50E+02 0,192461431
    9,50E+01 1,50E+02 0,191911451
    9,75E+01 1,50E+02 0,193273939
    9,75E+01 1,50E+02 0,193436723
    9,75E+01 1,50E+02 0,193273939
    1,00E+02 1,40E+02 3,58739E-05
    1,00E+02 1,50E+02 0,192378185
    1,00E+02 1,50E+02 0,192930907
    1,00E+02 1,50E+02 0,192378185
    1,00E+02 1,56E+02 0,00113179
    1,03E+02 1,50E+02 0,193273939
    1,03E+02 1,50E+02 0,193436723
    1,03E+02 1,50E+02 0,193273939
    1,05E+02 1,50E+02 0,191911451
    1,05E+02 1,50E+02 0,192461431
    1,05E+02 1,50E+02 0,191911451
    1,08E+02 1,50E+02 0,168913024
    1,08E+02 1,50E+02 0,168897025
    1,08E+02 1,50E+02 0,168913024
    1,10E+02 1,40E+02 1,88792E-05
    1,10E+02 1,50E+02 0,09923999
    1,10E+02 1,50E+02 0,099508324
    1,10E+02 1,50E+02 0,09923999
    1,10E+02 1,56E+02 0,000578976

  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 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 louftansa Voir le message
    Mon problème est que mes coordonnées ne sont pas réguliérement espacées, ce qui fait que je n'arrive pas à tracer la courbe.
    Peux-tu nous montrer ce que tu as essayé de faire sous MATLAB ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    J'ai créé un petit programme pour représenter la fonction:

    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
    
    %ce programme construit une matrice Z(i,j) représentant l'amplitude du
    %champ en fonction des coordonnées du capteur
    %les lignes représentent les valeurs de x et les colonnes les valeurs de y
    
    format long e
    
    
    %lecture des valeurs initiales de x et y 
    xini=A(1,1);
    yini=A(1,2);
    
    
    %lecture du nombre de lignes de la matrice
    n=size (A,1);
    
    %lecture valeurs finales x et y
    xfinal=A(n,1);
    yfinal=A(n,2);
    
    %lecture du pas de temps
    
     pasx = input('quel est le pas de temps pour x? ');
     pasy = input('quel est le pas de temps pour y? ');
    
    %initialisation des indices du tableau
    i=1;
    j=1;
    
    % lecture des différentes valeurs de x
    for m=xini:pasx:xfinal
     
      
        %balayage de toules lignes du tableau
        for l=1:n
            if A(l,1)==m
                Z(i,j)=A(l,5);
                j=j+1; 
            end
        end
         j=1;i=i+1;
    end
    
    %creation de la grille de définition de la courbe à dessiner
    % pensez à l'adapter en fonction des cordonnées qui définissent Z(i,j)
    % pour le meshgrid inverser l'axe des x et l'axe des Y
    
    [X,Y]= meshgrid(yini:pasy:yfinal,xini:pasx:xfinal);
    
    
    %dessin de la courbe 
    surf(X,Y,Z);
    xlabel ('coupe selon la largeur du défaut');
    ylabel('coupe selon la longueur du défaut');
    zlabel ('Amplitude');

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Salut,

    ton problème est un peu délicat. J'ai joins à mon poste une fonction qui réalise une régression plus élaborée sur un ensemble de points ( pas nécessairement alignés sur une grille).

    Pour l'utiliser:

    avec A la matrice de ton premier poste.

    PS :
    tu utilises des ',' pour les nombres décimaux alors que c'est des '.' sous Matlab.

    ++ bonne chance.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Merci beaucoup, ça marche!!!

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

Discussions similaires

  1. [Google Charts]Tracé d'une courbe avec y<0
    Par Mopige dans le forum APIs Google
    Réponses: 2
    Dernier message: 30/06/2013, 11h40
  2. tracé d'une courbe
    Par lolamila dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/12/2010, 18h37
  3. ralentissement à chaque tracé d'une courbe
    Par rafastari dans le forum Tkinter
    Réponses: 2
    Dernier message: 14/12/2007, 17h46
  4. VB6 , tracé d'une courbe
    Par a_adiss dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/11/2006, 21h22
  5. optimiser le tracé d'une courbe
    Par Zorgz dans le forum 2D
    Réponses: 3
    Dernier message: 04/09/2006, 17h17

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