MATLAB : générer un nom de variable
Résolu/Fermé
padawan
-
11 juin 2008 à 13:56
lazkike Messages postés 441 Date d'inscription vendredi 10 septembre 2004 Statut Contributeur Dernière intervention 14 décembre 2013 - 15 avril 2011 à 17:18
lazkike Messages postés 441 Date d'inscription vendredi 10 septembre 2004 Statut Contributeur Dernière intervention 14 décembre 2013 - 15 avril 2011 à 17:18
A voir également:
- MATLAB : générer un nom de variable
- Afficher texte matlab ✓ - Forum Matlab
- Boucle for matlab ✓ - Forum Matlab
- Acp matlab - Forum Matlab
- Moindre carré matlab ✓ - Forum Matlab
- Loi normale matlab - Forum Matlab
3 réponses
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
11 juin 2008 à 14:09
11 juin 2008 à 14:09
eval devrais fonctionner pourtant.
eval([ nom_variable "= nom_vecteur ;"]);
où nom_vecteur est le nom du ton vecteur et nom_variable, la variable dans laquelle la chaine de caractère entrée par l'utilisateur pour le nom de la variable est stocker.
Je ne vois pas pourquoi ça ne fonctionnerai pas chez toi et chez moi oui.
eval([ nom_variable "= nom_vecteur ;"]);
où nom_vecteur est le nom du ton vecteur et nom_variable, la variable dans laquelle la chaine de caractère entrée par l'utilisateur pour le nom de la variable est stocker.
Je ne vois pas pourquoi ça ne fonctionnerai pas chez toi et chez moi oui.
Poursuite des recherches infructueuses :
evalin('base',[ var{1} '=w ;']) ; ne fonctionne pas non plus (message d'erreur).
evalin('base',[ var{1} '=w ;']) ; ne fonctionne pas non plus (message d'erreur).
Bon voilà,
Je viens de trouver et je me rends compte que ce doit bien être une des eules formulations que je n'avais pas essayée : il me manbquait les crochets.
Pour ceux qui seraient intéressés, la solution est :
(dans ma fonction)
w = ones(1,7);
var = inputdlg('Enter variable name','Predicted label',1,{''});
assignin('base', [var{1}], w);
c'est évident une fois qu'on l'a trouvé!!
Je mets résolu!
Je viens de trouver et je me rends compte que ce doit bien être une des eules formulations que je n'avais pas essayée : il me manbquait les crochets.
Pour ceux qui seraient intéressés, la solution est :
(dans ma fonction)
w = ones(1,7);
var = inputdlg('Enter variable name','Predicted label',1,{''});
assignin('base', [var{1}], w);
c'est évident une fois qu'on l'a trouvé!!
Je mets résolu!
lazkike
Messages postés
441
Date d'inscription
vendredi 10 septembre 2004
Statut
Contributeur
Dernière intervention
14 décembre 2013
138
15 avril 2011 à 17:18
15 avril 2011 à 17:18
Merci pour la solution. ça marche nikel !
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
11 juin 2008 à 15:24
11 juin 2008 à 15:24
OK, je ne comprends pas trop, pour moi il suffit de définir une variable pour qu'elle aparaisse dans le workspace. Il me semblait que le workspace était une sorte de "who" graphique.
11 juin 2008 à 14:47
En fait le problème n'est pas là mais dans l'utilisation conjointe du eval et du assignin. C'est certainement une évidence pour les pros, mais bon je galère :
Ceci fonctionne :
w = ones(1,5);
var = inputdlg('Enter variable name','Predicted label',1,{''});
eval([ var{1} '=w ;'])
Mais après pour faire en sorte que cette nouvelle variable au contenu w et au nom fixé par l'utilisateur apparaisse dans la base workspace, je ne sais pas comment faire ...
assignin('base',?????????, w);
Merci.