Averaging sections of a vector
Mostrar comentarios más antiguos
A=[1 3 -999 -999 -999 -999 4 9 8 -999 -999 -999]; Here I want to get averages of three elements by ignoring -999. But in the final answer, if there were cases with three -999 in a given sector, it needs to be replaced by NaN. For an example, final answer of the above should B=[2 NaN 7 NaN]
Thanks.
Respuesta aceptada
Más respuestas (1)
Andrei Bobrov
el 28 de Jul. de 2017
z = A;
z(z == -999) = nan;
t = ~isnan(z);
B = accumarray(cumsum(diff([~t(1);t(:)]) ~= 0),z,[],@mean);
Categorías
Más información sobre NaNs en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!