Incrementation du nom de variable MATLAB
Résolu
yoyo
-
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'},'rot','0');
g3=rect2('1e-3','2e-4','base','corner','pos',{'2e-3','0'},'rot','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!!!
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'},'rot','0');
g3=rect2('1e-3','2e-4','base','corner','pos',{'2e-3','0'},'rot','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
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.
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