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 :

figure 3D à partir de données


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    février 2011
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : février 2011
    Messages : 215
    Points : 62
    Points
    62
    Par défaut figure 3D à partir de données
    Bonjour,
    J'ai un fichier texte contenant 25 colonnes.
    Ce sont des données de véhicules mélangées.
    Les données qui m'intéressent pour le moment sont les 4 premières colonnes, qui me donnent les trajectoires des véhicules (que je veux les dessiner dans une figure 3 D).
    La 1ère colonne contient le temps de parcours. La 2eme colonne contient l'identifiant du véhicule. la 3 eme colonne contient la position du véhicule sur l'axe x. la 4 eme colonne contient la position du véhicule sur l'axe y.
    C'est la 2 eme colonne qui contient l'identifiant de chaque véhicule. Donc si cet identifiant est le même "unique", donc il s'agit des données de trajectoires propres au même véhicule.
    Voilà ci-dessous mon code pour diviser:

    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
     
    clear all
    close all
    data = dlmread('D:\22_tracks_texte.txt');
     
    [~, ~, ic] = unique( data(:,2) );
    n = size(data,1);
    particules = accumarray(ic, (1:n).', [], @(idx) {data(idx,:)});
     
    for i = 1:size(particules,1)
        data1(i,:) = [particules{i,1}(1,1), particules{i,1}(1,3),particules{i,1}(1,4)];
    end
     
    figure
    hold on
    for k = 1:numel(particules)%%Parcourir les 689 véhicules
    if mod(k,2) == 1
    col_line = [1, 0, 0];
    else
    col_line = [0, 0, 1];
    end
     
    M = particules{k};
    plot3(M(:,1), M(:,3),M(:,4), 'color',col_line);
    end
    Je veux avoir les trajectoires des véhicules. mais je n'arrive pas à avoir une figure 3 D contenant le temps de parcours, la position en x, et la position en y !
    Pouvez vous m'aider, s'il vous plaît ?

    Merci d'avance

  2. #2
    Membre du Club
    Femme Profil pro
    Inscrit en
    février 2011
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : février 2011
    Messages : 215
    Points : 62
    Points
    62
    Par défaut
    En compilant mon code, j'ai une figure 2D :
    Nom : image_2021-10-11_112428.png
Affichages : 25
Taille : 34,2 Ko
    Je ne sais pas pourquoi je n'arrive pas à avoir une figure 3D !?

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    février 2011
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : février 2011
    Messages : 215
    Points : 62
    Points
    62
    Par défaut
    L'idée en gros c'est de diviser les données en des matrices différentes.
    J'ai divisé les données de chaque véhicule (qui a le même identifiant dans la colonne 2 du fichier de données original) dans une matrice à part.
    Pour pouvoir dessiner sur la même figure toutes les trajectoires de tous les véhicules.

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    février 2011
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : février 2011
    Messages : 215
    Points : 62
    Points
    62
    Par défaut
    Bonjour,
    Je n'ai toujours pas trouvé une solution à mon problème.
    La commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plot3(M(:,1), M(:,3),M(:,4), 'color',col_line);
    ne me donne pas une figure en 3 dimensions
    J'ai besoin de votre aide, s'il vous plaît

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

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

    Informations forums :
    Inscription : mars 2005
    Messages : 1 835
    Points : 3 351
    Points
    3 351
    Par défaut
    salut

    ca fait quoi si tu tapes view(45,45) ?
    tu as bien des valeurs différentes dans la 4eme colonne de M ?

    suivant la "tête" de tes données, scatter3 pourrait donner de meilleurs résultats (en ne reliant pas les points entre eux)

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/08/2005, 16h29
  2. Réponses: 3
    Dernier message: 25/07/2005, 09h40
  3. Réponses: 5
    Dernier message: 05/07/2005, 20h25
  4. Réponses: 1
    Dernier message: 24/05/2005, 14h50
  5. Réponses: 31
    Dernier message: 28/03/2005, 17h23

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