Matlab, nom de variable string

Résolu
LaëtitiaF Messages postés 1 Statut Membre -  
 bobsoiufgs -
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 10427 Statut Membre 1 835
 
Salut
n=1000;
for x=1:n
mat_x=eval(['MatriceComp',num2str(x),'MonofaceTNorm']);
% Cochonneries à faire avec la matrice...
end
A plus
11
someone
 
bonjour,

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

comment faire??

Merci
0
ZnabLab
 
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
bobsoiufgs
 
scripts faux saccabouf
0