Matlab, eval: Dynamic variable naming with eval/Création dynamique de variables
The purpose is to dynamically name variables. Example: I wish to store the value returned by a function (func) in different variables according to a parameter i. /
[french] le but de la manoeuvre est de créer dynamiquement des variables (avec des noms dynamiques). Exemple, je souhaite stocker les valeurs retournées par une fonction dans différentes variables en fonction de la valeur d'un paramètre.[/french]
Basically
for i=1:10
a=func(param1, param2,i); (exemple a=sin(i*pi));
end
Of course in this way a is always overwritten./ Dans cette solution la variable a est toujours écrasé.
If I want to dynamically create variables and store the different returned values in these variables, I can us eval
[french]Si je veux créer dynamiquement les variables, j'utilise la fonction eval[/french]
for i=1:10
val=strcat('a',num2str(i))
a=func(param1, param2,i);(exemple a=sin(i*pi));
eval([val'=a;'])
end
If this way, the 10 returned values will be stored in a1, a2, ....,a10
[french] le but de la manoeuvre est de créer dynamiquement des variables (avec des noms dynamiques). Exemple, je souhaite stocker les valeurs retournées par une fonction dans différentes variables en fonction de la valeur d'un paramètre.[/french]
Basically
for i=1:10
a=func(param1, param2,i); (exemple a=sin(i*pi));
end
Of course in this way a is always overwritten./ Dans cette solution la variable a est toujours écrasé.
If I want to dynamically create variables and store the different returned values in these variables, I can us eval
[french]Si je veux créer dynamiquement les variables, j'utilise la fonction eval[/french]
for i=1:10
val=strcat('a',num2str(i))
a=func(param1, param2,i);(exemple a=sin(i*pi));
eval([val'=a;'])
end
If this way, the 10 returned values will be stored in a1, a2, ....,a10
Commentaires
Enregistrer un commentaire