[Matlab] noms de variable dynamique

Résolu/Fermé
segatasan Messages postés 19 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 16 décembre 2010 - 4 févr. 2009 à 11:40
 camcam - 24 avril 2015 à 08:19
Bonjour,

j'aimerais créer une structure dont la description se trouve dans un fichier

je dispose des noms de mes variables et je peux donc créer ma structure en utilisant la syntaxe suivante :

MaStructure.('chaine_de_caracteres') = une valeur

mais cette astuce ne fonctionne que pour nommer les différents champs de la structure.

j'aimerais pouvoir nommer dynamiquement des variables quelconque ainsi que "MaStructure"

est ce que quelqu'un sait faire ?
A voir également:

5 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
4 févr. 2009 à 14:12
Ok, c'est plus clair.
je pense que la variable eval devrai convenir. Il suffit alors de faire :
eval([ nom_variable '=' valeur ';']);
Mais tu te comlique la vie. Si tu fait un fichier machin.m et que tu tape machin dans matlab, il effectuera toutes les commandes qui sont dedans, y compris les affectations.
3
segatasan Messages postés 19 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 16 décembre 2010 4
5 févr. 2009 à 18:48
merci, j'ai pu resoudre mon probleme grave a eval dans un premier temps mais c'est assez difficille a utiliser pour des commandes compliquées

j'ai decouvert par la suite la fonction ASSIGNIN qui permet de faire exactement ce que je voulais en prenant en parametre le nom et la valeur

la methode qui consiste a créer un fichier m, j'y avait pensé mais c'est un peu bourrin et pas franchement tres propre dans un code (trop de bidouille pour as grand chose)
2
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
4 févr. 2009 à 11:48
Bonjour.
Je ne comprends pas ce que tu cherches à faire. Donne un exemple concret de ce que tu aimerai faire.
Je ne comprends pas ce que tu veux dire par dynamiquement.
As tu essayé la fonction eval() ?
0
segatasan Messages postés 19 Date d'inscription mardi 3 février 2009 Statut Membre Dernière intervention 16 décembre 2010 4
4 févr. 2009 à 12:12
le but est de charger des variables dans matlab en utilisant un fichier d'initialisation (txt)
c'est a dire que je ne connait pas a l'avance le nom et la valeur de mes variables

exemple concret :

j'ai dans mon fichier texte la ligne suivante :

Niveau_essence = 50

mon programme recupere donc les 2 informations comme suit :

NomVariable = 'Niveau_essence'

Valeur = '50'

ce que je cherche a faire, c'est créer une variable qui s'appelle Niveau_essence et qui pourra contenir la valeur 50 :
je voudrais qu'en entrant dans le workspace le nom Niveau_essence, j'obtienne la valeur 50
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,
Je pense que tu peux utiliser la fonction struct().
MaStructure = struct(NomVariable,Valeur );
0