How to average values in a structure
Ältere Kommentare anzeigen
Hello! i have a 1*60 structure which represents minute data and each field is a 25*25 double. Is there a matlab command to average every 10 values in the structure so that I can arrive at 10 second averaged data fields. My output should be a structure of size 1*10 with each value being of size 25*25 double. I was hoping there was an easier way of doing this instead of playing around with loops.
2 Kommentare
Andrei Bobrov
am 24 Aug. 2016
Please attach your data
Anantha Padmanabhan
am 24 Aug. 2016
Akzeptierte Antwort
Weitere Antworten (1)
Andrei Bobrov
am 24 Aug. 2016
for your data (struct 1 x 960)
x = 20;
Q = struct2cell(data);
m = size(Q);
n = size(Q{1});
y = m(end)/x;
a = reshape(cat(3,Q{:}),[n, m(1),x,y]);
b = mean(a,4);
c = reshape(num2cell(b,[1 2]),m(1),y);
out = cell2struct(c,fieldnames(data));
Kategorien
Mehr zu Structures finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
