question about how to avoid using eval
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, all.
I got to know that using "eval" is not efficient and may cause several problems. I have used "eval" a lot in my previous codes.
If I want to replace the following expression without using "eval", would anyone help me one this? Thank you very much.
for jjjj=1:5
for iiii=1:40
for kkkk=1:3
x1(kkkk,:) = (1:10)*kkkk;
eval(['Resp.Phi',num2str(jjjj),'.Mu',num2str(iiii),'.Respx1(kkkk,:) = x1(kkkk,:);']);
end
end
end
0 commentaires
Réponse acceptée
Walter Roberson
le 22 Nov 2016
Resp.(sprintf('Phi%d',jjjj).(sprintf('Mu%d',iiii)),.Respx1(kkkk,:) = x1(kkkk,:);
5 commentaires
Walter Roberson
le 22 Nov 2016
You are right,
Resp.(sprintf('Phi%d',jjjj)).(sprintf('Mu%d',iiii)).Respx1(kkkk,:) = x1(kkkk,:);
Plus de réponses (1)
KSSV
le 22 Nov 2016
iwant = cell(5,40,3) ;
for jjjj=1:5
for iiii=1:40
for kkkk=1:3
x1(kkkk,:) = (1:10)*kkkk;
iwant{jjjj,iiii,kkkk}= ['Resp.Phi',num2str(jjjj),'.Mu',num2str(iiii),'.Respx1(kkkk,:) = x1(kkkk,:);'] ;
end
end
end
3 commentaires
KSSV
le 22 Nov 2016
Modifié(e) : KSSV
le 22 Nov 2016
Resp = struct ;
for jjjj=1:5
for iiii=1:40
for kkkk=1:3
x1(kkkk,:) = (1:10)*kkkk;
% iwant{jjjj,iiii,kkkk}= ['Resp.Phi',num2str(jjjj),'.Mu',num2str(iiii),'.Respx1(kkkk,:) = x1(kkkk,:);'] ;
end
for llll = 1:3
Resp(jjjj).Phi1(iiii).Mu1(llll).Respx1 = x1 ;
end
end
end
Resp(1).Phi1(1).Mu1
Voir également
Catégories
En savoir plus sur Startup and Shutdown dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!