Simplify large for loop running average.
1 vue (au cours des 30 derniers jours)
I'm looking to perform a running average of a height dataset based on conditional time criteria.
First I'm trying to find the overall range of indices that I would perform the running average on:
indi = find( time >= time( 1, 1 ) + hintv );
inde = find( time <= time( end, 1 ) - hintv );
A running average would then be calculated for each cell of time over a 25 hour period (12 hours on either side).
for cc = indi( 1, 1 ):1:inde( end, 1 );
fX( cc, 1 ) = nanmean( height( time >= ( time( cc, 1 ) - hintv ) & ...
time <= ( time( cc, 1 ) + hintv ), 1 ) );
fts( cc, 1 ) = time( cc, 1 );
Is there a way of achieving this without having to index each selection of heights within a for loop and then average them?
The problem is that the size of the the time and height datasets for which I would like to get averages are very large, 57000 cells. So a for loop takes way too long.