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

4 réponses

  1. Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 863
     
    Salut
    for p=1:n
    eval(['A' num2str(p) ' = expression dépendant de p']);
    end;
    À plus
    2
  2. Scoleproj Messages postés 285 Statut Membre 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
  3. yoyo
     
    Merci sacabouffe! ça marche nickel!
    1
  4. Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 863
     
    Eheh ! De rien ;-)
    À la prochaine !
    0
    1. 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
    2. 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