Matlab, nom de variable string

Résolu/Fermé
LaëtitiaF Messages postés 1 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008 - 18 août 2008 à 11:02
 bobsoiufgs - 23 juin 2010 à 17:36
Bonjour,


Je suis en train d'écrire un programme dans lequel beacoup de matrices rentrent en compte. Elles ont toutes le même nom à un chiffre près.
J'aimerais faire une boucle sur le nom de mes matrices pour les utiliser sans réécrire le nom de chacune car il y en a près de 1000.

Voilà un des nom :

MatriceComp9MonofaceTNorm

seul le chiffre varie.

J'ai alors crée une boucle sur le nom de mes matrice comme ceci:

Numero=[1 2 3 4 5]
for x=1:size(Numero,2);
['MatriceComp,num2str(Numero(:,x)),'MonofaceTNorm'];
end

Le problème en faisant ceci c'est que j'ai à présent des strings (qui correspondent au nom de mes matrices) et que je ne peut pas effectuer de calcul avec mes matrices car j'appelle pas les matrices par leur nom en faisant ça,mais une chaine de charactères.

Merci de m'aider le plus rapidement possible

Laëtitia

2 réponses

Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
18 août 2008 à 17:44
Salut
n=1000;
for x=1:n
mat_x=eval(['MatriceComp',num2str(x),'MonofaceTNorm']);
% Cochonneries à faire avec la matrice...
end
A plus
11
bonjour,

je voudris que ca soit a l'envers avec moi !!!

comment faire??

Merci
0
J'ai eu le même problème que toi.
Tu peux le résoudre comme suit :

for i = 1:N
hist_x= eval([ 'someone_',int2str(i) ]); ..........%Tu charges la matrice
Max=max(hist_x);........................................%Tu crée ta variable dans ta boucle (ici max de qqc au pif)
Z=genvarname(['MaxS_',int2str(i)]);..............% Tu crée le nom de variable que tu veux à la sortie
eval([Z ' = Max ;']).......................................% Tu sauvegarde ta variable sous le bon nom de variable.
end



J'espère que ça aura pu t'aider.
Bye.
0
scripts faux saccabouf
0