How do I call a struct name from variables stored in a cell array in a loop?
Afficher commentaires plus anciens
Greetings all:
So I have three structs named method1, method2, and method3. I also have a cell array (named structNames) that contains the name of the structs. The problem is that I get an error (that reads "Struct contents reference from a non-struct array object") when I try to extract the content of the structs in a for loop. Is there a way around this: Here is a sample code:
structNames = {method1,method2,method3};
method1.mean = 3;
method2.mean = 4;
method3.mean = 5;
meanSum = 0;
for m = 1:length(structNames)
meanExtract = structNames{m}.mean;
meanSum = meanSum + meanExtract;
end
1 commentaire
You should never name variables nor structs dynamically. As a rule of thumb, never store meta data as part of the variable name if you intend to access it via a loop. What you can do is to name fields dynamically. You could for example store method1-3 in one struct (let's call it data), and access its via dynamic field names:
f1={'m1','m2','m3'}
for i=1:3
data.(f1{i}).mean
end
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Structures dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!