Finding the mean of each column of each double within a structure

2 vues (au cours des 30 derniers jours)
Tanika Bawa
Tanika Bawa le 29 Août 2022
Commenté : Tanika Bawa le 30 Août 2022
Hello! I would like to find the mean of each double within this structure (named beh_data). Each double contains 4 columns. I would like to have the mean of each column (ideally the 2nd, 3rd and 4th column only), for each double.
I have tried various things eg:
MeanMovementPerTrial = [];
for i = 1:length (beh_data)
MeanMovementPerTrial(i) = structfun (@mean,beh_data.data(i),'UniformOutput',false);
end
Or even simpler stuff, but I keep getting different errors. Do you know how I can do this? Thank you =)
  1 commentaire
David Hill
David Hill le 29 Août 2022
We would be better able to help you if you attached your data.

Connectez-vous pour commenter.

Réponse acceptée

dpb
dpb le 29 Août 2022
Something like
M=arrayfun(@(s)mean(s.Data(:,2:end)),beh_data,'UniformOutput',0).'; % calculate the means
M=cellfun(@(c)struct('Means',c),M,'UniformOutput',1); % put them in a new struct array
Use arrayfun to iterate over the struct array, returning a cell array of the means. Then convert those to a new struct array by operating on each via cellfun.
If one were really a glutton for trying to play "MATLAB golf", see if can figure out and keep straight doing both in one line... :)

Plus de réponses (0)

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by