Incrémentation du nom de variable sous MatLab

Résolu
yoyo -  
 lilou -
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   Statut Membre Dernière intervention   1 835
 
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   Statut Membre Dernière intervention   26
 
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
yoyo
 
Merci sacabouffe! ça marche nickel!
1
Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 835
 
Eheh ! De rien ;-)
À la prochaine !
0
ZnabLab
 
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
lilou
 
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