averaging
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I have a matrix composed of 12 columns representing depths from 1 to 12 and I have thousands of rows which represent 2 minute intervals at which the measurements were taken. how could I change the values to show hourly averages? As in average every 30 rows! I've tried using reshape to do this but cant get my head around it.
thanks
0 comentarios
Respuestas (3)
Andrei Bobrov
el 9 de Nov. de 2011
d=randi(127,90,12);
out = squeeze(mean(reshape(d.',size(d,2),30,[]),2)).';
or
n = 30;
a = zeros(size(d)./[n 1]);
k1 = (n-1:-1:0);
for j1 = 1:size(d,1)/n
k = j1*n - k1;
a(j1,:) = mean(d(k,:));
end
or 2
out2 = blockproc(d,[30, size(d,2)],@(block_struct)mean(block_struct.data))
0 comentarios
Fangjun Jiang
el 9 de Nov. de 2011
d=rand(90,12);
[M,N]=size(d);
e=mat2cell(d,30*ones(M/30,1),N);
f=cellfun(@mean,e,'uni',false);
g=cell2mat(f);
0 comentarios
Ver también
Categorías
Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!