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 :

Surface avec 3 données indépendantes [Débutant]


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Surface avec 3 données indépendantes
    Bonjour, mon problème va sûrement paraître simple à vos yeux mais je début et suis bloqué.

    J'ai un fichier Excel contenant des coordonnées géographiques : latitude, longitude, altitude.

    Je voudrais faire un graphique 3D en utilisant surf ou mesh.

    Quand je fais surf(X,Y,Z) X étant la latitude, Y les longitude et Z l'altitude.
    J'ai testé tout un tas de truc pris à droite à gauche mais j'en reviens toujours à la même erreur : "Z must be a matrix, not a scalar or vector."

    Je crois comprendre que Z doit être fonction de X et Y mais ça ne l'est pas du tout dans mon cas. Comment faire un surf/mesh avec 3 données indépendantes?

    Merci d'avance à la communauté.

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    en effet pour utiliser surf ou mesh il faut des données complètes (cad pour toutes les combinaisons des X et Y présents dans tes données tu dispose du Z correspondant)
    ce qui s'écrit via une matrice Z de taille length(X)*length(Y)
    et d'ailleurs il faut parfois (selon les fonctions appelées) construire des matrices X et Y avec la fonction meshgrid

    là tu as des données "éparpillées", c'est à dire un ensemble de triplets X, Y, Z
    alors il se peut que des données soient complète, auquel cas il te suffit de réorganiser X, Y, et Z en matrice (cf reshape)

    mais il est plus probable que tes données soient réellement éparpillée (scattered)
    auquel ça tu peux :
    - appeler une fonction faite pour ça : scatter3 ou plot3 (mais ca ne trace pas des surface)
    - reconstituer un ensemble de données complet par interpolation (cf scatteredInterpolant)
    - reconstituer un ensemble de données complet par lissage (cf gridfit)
    - ...

    Fabien

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Ok, merci pour votre aide.

    Je crois que mon problème n'est pas solvable je vais rester sur le scatter3.

    Bonne continuation
    Valou_le_lapinou

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    si il est solvable, mais il faut faire un peu de mise en forme des données
    essayes ceci (construction des points manquants par interpolation)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    f = scatteredInterpolant(x, y, Z);
    [mx, my] = meshgrid(x,y);
    mz = f(mx, my);
    figure;
    surf(mx, my, mz)

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2017
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Cela fonctionne, merci beaucoup !

    Bonne continuation

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

Discussions similaires

  1. Insérer des données "courants en surface" avec Matplotlib
    Par piecess dans le forum Général Python
    Réponses: 2
    Dernier message: 26/06/2013, 09h05
  2. Plusieurs bases indépendantes avec des données communes
    Par dg78 dans le forum Développement
    Réponses: 3
    Dernier message: 20/12/2010, 09h42
  3. Réponses: 3
    Dernier message: 14/11/2009, 15h55
  4. Visualisation de données OLAP en 3D sous Microsoft Surface avec Ogre3D
    Par jmix90 dans le forum Autres outils décisionnels
    Réponses: 2
    Dernier message: 10/09/2009, 11h53
  5. [Projet en cours] Visualisation de données OLAP en 3D sous Microsoft Surface avec Ogre3D
    Par jmix90 dans le forum Projets
    Réponses: 0
    Dernier message: 31/07/2009, 15h38

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