Incrémentation du nom de variable sous MatLab

Résolu
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.
Configuration: Windows XP
Firefox 3.0.3

4 réponses

  1. Salut
    for p=1:n
    eval(['A' num2str(p) ' = expression dépendant de p']);
    end;
    À plus
    2
    1. 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
      1. Merci sacabouffe! ça marche nickel!
        1
        1. Eheh ! De rien ;-)
          À la prochaine !
          0
          1. 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
          2. 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