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 :

[strread] Exploiter les données contenues dans le tableau de cellules résultats


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut [strread] Exploiter les données contenues dans le tableau de cellules résultats
    Bonjour à tous,

    suite à mon problème précédent de récupération de données dans un fichier texte qui a été résolu, je n'arrive pas à les exploiter car elles sont sous forme d'un tableau cellulaire. Ma question est : comment les récuperer sous forme d'un vecteur ou d'une matrice (pour les données chiffrées).

    J'ai essayé plein de choses pour les rentrer dans un vecteur mais sans succès.
    Je vous explique :

    Mon fichier texte est sous cette forme :

    #2019=CARTESIAN_POINT('',(0.059685,0.039428,0.025000));
    Je veux récuperer les 2 premieres coordonnées des points, ce que je fais en les plaçant dans un tableau de cellule grace au code suivant (str est la ligne citée ci dessus):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [...]
     str([1:idx+25 end-2:end])=[];
     [a b]=strread(str,'%s%s%*s','delimiter',',');
    [...]
    Cela semble les placer dans un tableau de cellule [a b]. Comment pourrais-je récuperer ces valeurs dans un vecteur, par exemple V = 0.059685 0.039428
    J'ai essayé pas mal de choses :
    - cell2mat()
    - char()
    - cellfun()
    - ...
    mais toutes mes tentatives me renvoient une matrice 8 colonnes et 2 lignes alors que je voudrais 1 colonne 2 lignes.

    Avez-vous une idée pour récuperer ces nombres 'd'un seul tenant' car je n'arrive en fait à récuperer que chacun des caractères séparément...et encore...

  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 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Une solution un peu tirée par les cheveux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    str='#2019=CARTESIAN_POINT('',(0.059685,0.039428,0.025000));'
    [X{1:3}]=strread(str,'%*s%*s%*s%f%f%f','delimiter','(,')
    Si elle fonctionne, il faut utiliser CELL2MAT ensuite sur X
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Si j'utilise ceci, alors X est de la forme (dans le cas des seules 2 coordonnées sur x et y que je veux récupérer):
    {1x1 cell} {1x1 cell}
    Si l'on fait alors sur X un CELL2MAT alors on a l'erreur qui peut se comprendre :
    ??? Error using ==> cell2mat
    Cannot support cell arrays containing cell arrays or objects.
    Je ne sais donc pas si je peux m'en sortir sous cette forme

    [edit] : cela semble marcher, encore faut-il utiliser les bons %s et %f au bon endroit

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    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 302
    Points : 52 884
    Points
    52 884
    Par défaut
    Je ne comprends pas vraiment pourquoi X a ce format ?

    Peu importe, essaie ceci :
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    j'avais essayé cell2mat(X{1}) et c'est ca qui m'a mis sur la piste...
    Merci, ca semble marcher...

    ps : j'ai édité mon post ci dessus en meme temps que ta réponse

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/05/2011, 16h00
  2. Réponses: 6
    Dernier message: 31/05/2008, 18h05
  3. Réponses: 2
    Dernier message: 09/06/2007, 22h09
  4. [Conception] Afficher les données (BDD) dans un tableau en PHP
    Par ox@na dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/09/2006, 15h24
  5. Réponses: 15
    Dernier message: 02/12/2005, 17h12

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