Incrementation du nom de variable MATLAB

Résolu
yoyo -  
 yoyo -
Bonjour,
j'ai récemment demandé comment incrémenter un nom de variable MATLAB et sacabouffe que je remercie a trouvé la réponse que je cherchais. Le code correspondant étant par exemple:

n=3;
for p=1:n,
eval(['A' num2str(p) ' = 3*p']);
end;

ce qui donne

A1=3
A2=6
A3 =9

L'étape suivante qui me pose problème est de réussir à incrémenter les Ap et de leur affecter non plus une expression dépendante de p, mais (je pense) une fonction qui prenne en argument des strings entre autre. Je m'explique par l'exemple suivant:

g1=rect2('1e-3','2e-4','base','corner','pos',{'0','0'},'rot'­,'0');
g2=rect2('1e-3','2e-4','base','corner','pos',{'1e-3','0'},'r­ot','0');
g3=rect2('1e-3','2e-4','base','corner','pos',{'2e-3','0'},'r­ot','0');

est un code matlab généré par un logiciel interfacé avec matlab (comsol multiphysics). Le truc, c'est que j'aimerais codé non pas 3 mais un nombre N d'éléments. Après le 'pos', j'aimerais incrémenter avec un vecteur seg(p).

Je ne sais pas quelle syntaxe je dois utiliser. Déjà, j'ai essayé de mettre un string dans l'argument d'une fonction, et matlab a crié.

Merci pour votre aide, ça me débloquerait grave!!!

2 réponses

Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 835
 
Salut
Je suis pas sûr d'avoir tout compris mais il me semble que ce que tu veux faire, c'est la même chose que ton problème précédent en quelque sorte.
seg = (1e-3)*(0:n-1);
for p=1:n
eval(['g' num2str(p) ' = rect2(''1e-3'',''2e-4'',''base'',''corner'',''pos'',{num2str(seg(p)),''0''},''rot'­­',''0''); ']);
end
Bonne nuit
3
yoyo
 
effectivement, c la meme choz que celui que tu m'as donnée avant. Le truc c que j'espere que cette syntaxe est autorisée. et pour le moment je peux pas le vérifier.

Merci bcp en tt k!
0