Rechercher : dans
Par :

MATLAB : générer un nom de variable

Dernière réponse le 11 jun 2008 à 15:24:11 padawan, le 11 jun 2008 à 13:56:30 
 Signaler ce message aux modérateurs

Bonjour,

Je ne suis pas une experte sur Matlab et je rencontre un problème. Le voici (je suis dans une interface MATLAB):

1/ Je crée une boîte de dialogue pour que l'utilisateur me donne le nom d'une variable
var = inputdlg('Enter variable name','Predicted label',1,{''});
2/ Je veux que dans la base workspace une variable soit créée avec pour nom celui rentré par l'utilisateur, et pour valeur un vecteur que j'ai calculé plus haut dans mon code.

PISTES : je me suis penchée sur les fonctions genvarname, assignin et eval, mais je ne parviens pas à obtenir le résultat escompté...

Please HELP

Merci par avance.

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « MATLAB : générer un nom de variable » dans :
Générer des nombres aléatoires efficacement avec rand() VoirGénérer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...
Les variables en C++ VoirLes variables en C++ 1. Les différents types de variables 1.1 bool 1.2 char 1.3 unsigned short int 1.4 short int 1.5 unsigned long int 1.6 long int 1.7 int (16 bits) 1.8 int (32 bits) 1.9 unsigned int (16 bits) 1.10 unsigned int (32...
Concaténer les vecteurs ou les matrices sous Matlab VoirL'opération de concaténation des variables de Matlab consiste à regrouper ces variables dans une seule (vecteur ou matrice). Exemple : |2 3 4| X= |1 2 5| |0 2 7| Avec : |9 6 8| Y= |5 6 2| |3 2 1| Donne...
Télécharger Creaname - Générateur Gratuit de Noms VoirUn produit n’est rien, si son nom n’est pas accrocheur. Il est fondamental de bien choisir un nom de produit, un nom d’entreprise, mais aussi de bien le présenter pour que son impact soit rapide et immédiat. CreaName est un outil...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...

1

Char Snipeur, le 11 jun 2008 à 14:09:31

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. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur

2

padawan, le 11 jun 2008 à 14:47:20

D'abord merci d'avoir répondu et de ton indulgence.

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.

Répondre à padawan

3

padawan, le 11 jun 2008 à 14:54:37

Poursuite des recherches infructueuses :

evalin('base',[ var{1} '=w ;']) ; ne fonctionne pas non plus (message d'erreur).

Répondre à padawan

4

padawan, le 11 jun 2008 à 15:11:27

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!

Répondre à padawan

5

 Char Snipeur, le 11 jun 2008 à 15:24:11

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. Salutation ! avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur
Collection CommentÇaMarche.net