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 :

Comment remplir un tableau


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut Comment remplir un tableau
    Bonjour à tous

    Je vous expose mon problème:
    J'ai 4 listes (je crois que l'on dis vecteur avec matlab) de nombres qui s'affichent séparéments les unes de autres et je voudrais en faire un tableau unique de quatres colonnes mais je ne sais pas du tout comment m'y prendre.
    Quelqu'un pourrait-il m'aider?

    Merci beaucoup beaucoup beaucoup d'avance

    Aurore

  2. #2
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    tu as plussieurs façons de la faire

    exemple avec la fonction cat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    web([docroot,'/techdoc/ref/cat.html'])
    PS concernant une autre de tes questions, il suffit d'enlver le ; à la fin de la ligne de commande pour affichuer les résultats dans le Command WIndows
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    Merci, j'ai réussi à faire l'affichage.

    Mais je comprends pas comment le petit bou de code que tu me donne va m'aider. Cela me rappelle sur la page d'aide, et dans le labo ou je suis la version de matlab qu'ils utilisent, a une aide deffectueuse.
    Au secours...

    Aurore
    (une novice qui patauge avec matlab)

  4. #4
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    parce que cela te renvoie sur l'aide HTML de la fonction cat.
    Quand on est débutant comme toi, tu ne peux pas deviner comment concaténer des tableaux. L'aide HTML de MATLAB est impressionnante, seule elle peut t'aider.

    Si ton Help est pourri, peut être tu as INternet!:
    http://www.mathworks.com/access/help...c/ref/cat.html
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  5. #5
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par Aurore_atmo
    Merci, j'ai réussi à faire l'affichage.

    [...]
    Au secours...

    Aurore
    (une novice qui patauge avec matlab)

    je t'invite à jeter un coup d'oeil ici : http://www.developpez.net/forums/sho...d.php?t=164009

    Bon courage

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    Merci cela m'aide bien

    J'ai encore une question : il m'affiche ma premiere colonne corectement et pour les 3 suivantes il me met des 'petits carrés', qu'est-ce que cela veut dire?
    Lorsque j'omets la premiere colonne, les trois autres (celles qui s'affichait avec les 'petits carrés', apparaisent maintenant normalement).
    Comment je peut résoudre ce problème , sachant que ma première colonne represente des dates et les autres des nombres.

    Merci encore

  7. #7
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    j'ai un peu de mal à voir de quoi tu parles : tu ne veux pas nous mettre un bout de code avec le résultat ? (utilise les balises [ code] [ /code])

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    Alors voila, je bosse sous linux et le copier/coller de la fenetre de commande ne marche pas (meme en passant par un fichier txt j'arrive pas a copier dans ce message les petits carres)

    Je vous copie ma partie de code correspondant à la première colonne (celle des dates):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    % Conversion des jours en format dates
    out   = {};
    debut = datenum('01/01/1978','dd/mm/yyyy');
        for i=1:5
            out{end+1} = datestr(debut+i,'dd/mm/yyyy');
        end
    R=out'
    J = cell2mat(R)
    Maintenant je vous copie le code pour le tableau final:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    T = cat (2,J,A,B,C)

    C'est grave docteur?

  9. #9
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    il y a un problème avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    R=out'
    J = cell2mat(R)
    out est un cell array de chaines de caractères
    cell2mat va soit tout concaténer dans une seule chaine, soit te faire un tableau de char.



    si ton problème est uniquement pour l'affichage, pourquoi n'utilises-tu pas qqch du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:length(J)
        sprintf('%s | %d | %d | %d',J{i},A(i),B(i),C(i))
    end
    Sinon ton histoire de petit carré, c'est probablement parce qu'il converti des scalaires en chaines de caractères, ou vice versa.

  10. #10
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    OK. Tu utilises un jargon .... compliqué
    Qu'est-ce que je suis censée faire pour remédier à ce problème?

    car si je ne mets pas la ligne:
    il m'affiche : "Convertion to cell from double is not possible"

    Est-ce que je dois utiliser une autre fonction que je ne connais pas? quelque chose qui ressemblerait à :
    Merci

  11. #11
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    pour ton problème d'affichage, c'est dans MATLAB que ça se passe?
    tu as des carrés blancs c'est ça?
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  12. #12
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    oui, c'est çà.
    Le code donné par Mathusalem fonctionne c'est chouette. Juste une dernière question et j'arrête: comment je peux faire pour qu'il ne m'écrive pas ans= entre chaque ligne? Il faut afficher en version condensé ou quelque chose comme çà?

    Mais pour me coucher moins stupide ce soir, j'aimerai bien savoir d'où sorte ces carrés blancs? et qu'est-ce qu'ils signifient?


    sinon merci à tout les deux pour votre aide EXTREMEMENT precieuse.

    merci encore

  13. #13
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    tu mets un ; à la fin de toutes les lignes de commande
    sinon pour les carrés balancs les dotted squares, peux tu me dire si MATLAB est installé locallment ou tu fais du remote (VNC)?
    Quel est ta distribution (Redhat 7.3?)
    Et surtout quelle est ta version MATLAB?
    Tape:et donne moi le résultat de cette commande
    merci
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  14. #14
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    argh ca fait beaucoup de question a la fois:
    -deja premier point: je veux afficher mon tableau en entier sans les ans= au milieu, si je mets des ; à la fin de chaque ligne des commande cela m'affiche plus rien du tout (normal!). Je fais comment si je veux que le résultat final de la boucle?

    -je suis en stage sur une machine qui n'est pas la mienne, je ne sais du tout comment est installé matlab. Ce que je peux dire c'est que quand je tape , j'obtiens:

    Matlab version 6.1.0

    et plein de version de logiciels associés. Comme je suis pas chez moi, je ne suis pas sure que j'ai le droit de donner ces infos sur un forum public (dsl ) (et en plus c'est long et le copier/coller ne marche pas.

    merci

  15. #15
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    C'est quoi ton code au final?

    Pour les dotted squares, jette un oeil là dessus:http://www.mathworks.com/support/sol...lution=1-15K67
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  16. #16
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    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
    % Conversion des jours en format dates
    out   = {};
    debut = datenum('01/01/1978','dd/mm/yyyy');
        for i=1:5
            out{end+1} = datestr(debut+i,'dd/mm/yyyy');
        end
    J=out';
     
    %Recuperation des donnees
     
    fid=fopen('temperatures_1_km.csv');        
    A= textread('temperatures_1_km.csv','%f');  
     
     
    fid=fopen('temperatures_2_km.csv');         
    B= textread('temperatures_2_km.csv','%f');  
     
    fid=fopen('temperatures_3_km.csv');         
    C= textread('temperatures_3_km.csv','%f');
     
    % Affichage des donnees
    Altitude_1km=[A];                   % affichage des valeurs de 1 km 
    Altitude_2km=[B];                  % affichage des valeurs de 2 km 
    Altitude_3km=[C];                  % affichage des valeurs de 3 km 
     
    %Creation d'un tableau de valeurs avec les tables faites ci-dessus
    for i=1:length(J);
        sprintf('%s | %d | %d | %d',J{i},A(i),B(i),C(i));
    end;
    merci

  17. #17
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    attention, tu fais plein de fopen, mais aucun fclose

  18. #18
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 10
    Points
    10
    Par défaut
    merci pour la remarque des
    sinon comment je fais pour faire disparaitre mes et faire tout de même apparaitre mon tableau?
    mettre des ; à la fin de toutes les lignes, çà fait que plus rien ne s'affiche (c'est normal je sais).

    merci

    Aurore

  19. #19
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    je te propose de laisser tomber le sprintf pour te débarasser des ans.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat(1,2,3) est équivalent à [1,2,3]
    maintenant observe ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >> ['toto',2,4,5]
     
    ans =
     
    toto
     
    >> ['toto',num2str(2),4,5]
     
    ans =
     
    toto2
    ça devrait te suffir pour trouver toute seule

  20. #20
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    une remarque supplémentaire, dans ton code tu n'alloues pas d'espace mémoire , ton code risque d'etre ralenti.

    Tu devrais reagrder la note technqiue à ce sujet:http://www.mathworks.com/support/sol...lution=1-18150
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 12
    Dernier message: 31/03/2010, 16h19
  2. Comment remplir un tableau en javascript?
    Par metou2703 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/09/2009, 18h27
  3. [C#] Comment remplir un tableau avec un arraylist
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/06/2006, 15h14
  4. comment remplir un tableau deja créé
    Par Hamza dans le forum Delphi
    Réponses: 6
    Dernier message: 05/06/2006, 23h01
  5. comment remplir un tableau deja créé
    Par Hamza dans le forum Bases de données
    Réponses: 0
    Dernier message: 04/06/2006, 19h38

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