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 :

Problème pour lire une valeur dans une cell


Sujet :

MATLAB

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Problème pour lire une valeur dans une cell
    Bonjour à tous,
    J'ai un petit problème avec un tableau de cell et même après avoir lu (http://matlab.developpez.com/faq/?page=cellarray) je n'arrive toujours pas à le régler.
    Pour les âmes courageuses et serviables je vous explique.

    Je récupère des vecteurs de températures préalablement calculés grâce à la commande 'who' dans le tableau liste_temperature.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    liste_temperature=who('*temp')
     
    liste_temperature = 
     
        'I_ideal_Night_temp'
        'I_ideal_temp'
        'I_para_Night_temp'
    Donc quand j’affiche ma liste_temperature, j'ai bien le nom de mes vecteurs de température mais impossible d’accéder à leurs valeurs.

    Si le vecteur n'a qu'une composante ( scalaire donc) j'ai résolu le problème avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cellfun(@eval,liste_temperature)
    .

    Mais dès que c'est un vecteur impossible, même en définissant 'UniformOutput' en false.


    J’espère que j'ai été clair

    Merci d'avance de votre aide !

    Bonne journée

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je ne reproduis pas ton problème en utilisant 'UniformOutput', false
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    values = cellfun(@eval,liste_temperature, 'UniformOutput', false);

    Quelle est l'erreur que tu obtiens ?

    Si cela persiste, tu peux te tourner vers une simple boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    values = cell(numel(liste_temperature), 1);
    for k = 1:numel(liste_temperature)
        values{k} = eval(liste_temperature{k});
    end

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Salut WinJerome,
    Déjà merci de consacrer un peu de ton temps à mon problème !

    Alors, je viens d'essayer tes deux méthodes et elles ne marchent pas.

    Dans les deux cas mon cher Matlab me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    values = 
     
        [ 1796x1 double]
        [ 4127x1 double]
        [ 1796x1 double]
    Et si je te tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >> values(1)
     
    ans = 
     
        [1796x1 double]
    Je n'arrive toujours pas à accéder aux valeurs dans mes vecteurs.

    Pour simplifier, j'ai fait ce petit code comme exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    clc;
    clear all;
     
     
    a_temp=rand(1,10);
    aba_tem=rand(1,10);
    abababa_temp=rand(1,10);
    sdfjoa_temp=rand(1,10);
     
    liste_a=who('*temp')
    %comment accéder à mes vecteurs a_temp aba_tem abababa_temp .... à partir de liste_a


    J’utilise la commande 'who' parce que je ne sais pas à l'avance combien j'ai de variable temp ( matérialisé par l'ajout de 'temp' dans leur nom). Et aussi parce que je veux effectuer les mêmes traitement sur tous mes vecteurs temp donc les avoir dans un tableau me permettrai de faire une boucle sur toute ses vecteurs.


    Encore merci de vos réponses.
    Bien cordialement
    Eric

  4. #4
    Invité
    Invité(e)
    Par défaut
    Au contraire, cela marche parfaitement

    Tu n'as pas assez lu le lien de la FAQ
    Comment accéder aux valeurs des tableaux de cellules ?

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Effectivement, ça marche !

    Encore un mystère de l'informatique...

    Merci beaucoup en tout cas !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Lire la valeur d'une variable dans une sous-classe de Script
    Par professeur shadoko dans le forum Groovy
    Réponses: 1
    Dernier message: 31/08/2012, 10h07
  3. Réponses: 2
    Dernier message: 10/04/2008, 11h48
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 4
    Dernier message: 09/06/2006, 07h38

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