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 :

Tracer un plot 3D (avec surf?) à partir d'un fichier


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut Tracer un plot 3D (avec surf?) à partir d'un fichier
    Bonjour a tous,

    J'aimerai utiliser "surf" mais a partir d'un fichier de donnee, donc avec 3 vecteurs, sauf que surf n'accepte pas 3 vecteurs en argument. Comment puis-je faire?

    Le contexte est un probleme d'optimisation a deux variables, donc je peux afficher mon espace de recherche et j'aimerai l'afficher.
    1r colonne=1r variable, 2eme colonne=2eme variable, 3eme colonne=misfit

    Merci a vous.

    un exemple de mon tableau (les 30 1r lignes, il y en a 9997):
    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
    0.0,0.0,110.7538914606862
    0.0,0.01,110.55243379670434
    0.0,0.02,110.35135730968253
    0.0,0.03,110.15066126744772
    0.0,0.04,109.95034493924767
    0.0,0.05,109.75040759574803
    0.0,0.06,109.55084850902978
    0.0,0.07,109.3516669525864
    0.0,0.08,109.15286220132099
    0.0,0.09,108.95443353154364
    0.0,0.1,108.7563802209687
    0.0,0.11,108.55870154871195
    0.0,0.12,108.36139679528785
    0.0,0.13,108.16446524260695
    0.0,0.14,107.96790617397286
    0.0,0.15,107.77171887408002
    0.0,0.16,107.57590262901046
    0.0,0.17,107.38045672623136
    0.0,0.18,107.18538045459236
    0.0,0.19,106.99067310432271
    0.0,0.2,106.79633396702877
    0.0,0.21,106.60236233569107
    0.0,0.22,106.40875750466189
    0.0,0.23,106.21551876966237
    0.0,0.24,106.02264542777996
    0.0,0.25,105.83013677746561
    0.0,0.26,105.63799211853136
    0.0,0.27,105.44621075214737
    0.0,0.28,105.25479198083944
    0.0,0.29,105.06373510848645
    par exemple j'aimerai obtenir une figure comme celle-ci, qui me donne du coup l'evolution de mon algo de recherche dans l'espace des variables.
    Nom : b307211h-f1.gif
Affichages : 872
Taille : 83,7 Ko

  2. #2
    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
    Il faudrait mettre tes données au même format que la sortie de la fonction meshgrid car tes données ont l'air alignées sur une grille régulière. Utilise la fonction reshape pour ré-ordonner x, y et z en tableau 2d, puis affiche les avec surf.
    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.

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut
    Merci pour ta reponse magelan,

    Citation Envoyé par magelan Voir le message
    Il faudrait mettre tes données au même format que la sortie de la fonction meshgrid car tes données ont l'air alignées sur une grille régulière. Utilise la fonction rechape pour ré-ordonner x, y et z en tableau 2d, puis affiche les avec surf.
    C'est a dire utilise reshape pour re-ordonner? pour moi reshape c'est pour transformer un vecteur en matrice ou inversement, mon 1r vecteur est la variable x mon second y et mon 3eme c'est la hauteur, je vois pas comment utiliser reshape??
    Pourrais-tu preciser sur un exemple simple comment proceder ?

  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
    Par défaut
    Oui, c'est cela, tu transforme tes vecteurs en tableau.

    Par exemple, imagine que tu aies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    A = [0.0,0.0,110.7538914606862
    0.0,0.01,110.55243379670434
    0.0,0.02,110.35135730968253
    0.0,0.03,110.15066126744772
    0.1,0.0,109.95034493924767
    0.1,0.01,109.75040759574803
    0.1,0.02,109.55084850902978
    0.1,0.03,109.3516669525864
    0.2,0.0,109.15286220132099
    0.2,0.01,108.95443353154364
    0.2,0.02,109.15286220132099
    0.2,0.03,108.95443353154364];
    Alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    x = reshape(A(:,1),4,3);
    y = reshape(A(:,2),4,3);
    z = reshape(A(:,3),4,3);
     
    surf(x,y,z,'EdgeColor','none')
    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 confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut
    Merci magelan,

    comment tu determines reshape(A(:,1),4,3); les parametres du reshape, 4,3 dans ton exemple.

  6. #6
    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
    As-tu regardé ce que contient x et y? Tu devrais facilement comprendre la logique.
    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.

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

Discussions similaires

  1. Remplir un datagrid avec wpf à partir d'un fichier texte
    Par solim dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 06/05/2011, 10h33
  2. Réponses: 1
    Dernier message: 25/04/2006, 17h19
  3. Envoyer un Email avec Outlook à partir d'access
    Par pilotcoater dans le forum Access
    Réponses: 1
    Dernier message: 13/03/2006, 20h04
  4. Envoyer un message avec Outlook à partir d'access
    Par pilotcoater dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 13/03/2006, 00h26

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