Effacer les filtres
Effacer les filtres

How to access specific data when using "getfield"

3 vues (au cours des 30 derniers jours)
Artu
Artu le 27 Juin 2012
Hello all,
I am using the following code to analyse some data stored in a structure:
for i=1:10;
mean_value (i) = mean(getfield(Charge,strcat('Curve',int2str(i))));
end
"Charge" is the name of the structure, and "Curve" is each one of the 10 array of data inside it. So for this example, I get a vector with 10 elements that shows the average value of each group of data (the structure contains 10x(8670x1) elements). Now I want to take only the first 1416 elements of each array and to get its mean value. But I don't know how to do this.
Any suggestion? Thanks you so much!
Best regards.

Réponses (3)

Kye Taylor
Kye Taylor le 27 Juin 2012
If I understand your question, this may work...
for i=1:10;
myData(:,i) = getfield(Charge,strcat('Curve',int2str(i)));
end
mean_value = mean(myData);
meanValueFirstBunch = mean(myData(1:1416,:));

Leah
Leah le 27 Juin 2012
You can reference the field of a structure dynamically with Charge.Curve1 or Charge.('Curve1') Loren has some nice blog posts on structures http://blogs.mathworks.com/loren/2009/05/20/from-struct-to-dataset/
i=0
for fname=fieldnames(Charge)'
i=i+1;
mean_value(i)=mean(Charge.(char(fname))(1:1416));
end
  1 commentaire
Jan
Jan le 27 Juin 2012
fname{1} is more efficient than char(fname).

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 27 Juin 2012
for i = 1 : 10 mean_value(i) = mean(Charge.(str2num(i, 'Curve%d'))); end

Catégories

En savoir plus sur Structures 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!

Translated by