Incrémentation du nom de variable sous MatLab

Résolu/Fermé
yoyo - 17 oct. 2008 à 19:50
 lilou - 20 mars 2013 à 10:48
Bonjour, je débute en MATLAB et j'aimerais incrémenter le nom d'une variable. Typiquement, j'ai besoin de générer des variables A1,A2,...,An, auxquelles j'affecte des valeurs numériques. Par exemple,

for i=1:n,
Ai=expression dépendante de i;
end;

Le problème c'est que je n'arrive pas à trouver clairement la méthode pour y parvenir.

Je remercie vraiment celui qui peut m'aider à résoudre ce problème.

4 réponses

Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 835
17 oct. 2008 à 19:57
Salut
for p=1:n
eval(['A' num2str(p) ' = expression dépendant de p']);
end;
À plus
2
Scoleproj Messages postés 231 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 août 2022 26
17 oct. 2008 à 19:53
generalement on incrimante de cette maniere
for i:=1 to n do
ai:=i+1;
end;
je ne sais si jai bien repondu a ta question
1
Merci sacabouffe! ça marche nickel!
1
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 835
18 oct. 2008 à 00:38
Eheh ! De rien ;-)
À la prochaine !
0
Salut à vous !
J'aurai encore une autre question concernant l'utilisation de la fonction eval...
Je veux faire une procédure utilisant la fonction imhist pour réaliser des tests sur des sets d'images.
Ce que je fais pour l'instant est ceci :

for i= 1:N
eval([ '[hSp' num2str(i) ' ,xSp] =imhist(Sp ' int2str(i) ' (:,:, ' num2str(i) ' ),nColonnes)] ']);
end

Ce que je veux c'est sortir les variables hSp et xSp de la fonction. hSp varie mais xSp reste le même d'où la non incrémentation de xSp.

Pour un seul set, le code marche sous la forme
for i= 1:size(Sc1,3)
[hSc,xSc]=imhist(Sc1(:,:,i),nColonnes);
HScT = HScT+hSc;
end

mais je n'arrive pas à réaliser cette incrémentation...
Auriez vous une idée ?
Il doit s'agir d'une erreur d'appel de fonction au sein de eval. Deux eval imbriqués ne marchent pas non plus.
Merci d'avance....
Julien
0
Bonjour,
Je voulais savoir comment on incrémentait dans une fonction de matlab. En gros voilà ce que je veux faire:
for i = 1:4

eval(['y' num2str(i) ' = y(844800*i:844800*(i+1))']); % ça ça marche bien
eval(['c' nums2str(i) ' = cwt(y_i,[2:128],'morl')']); % et c'est la que ca marche pas!
save decoupage_signal.mat;

end
0