Borrar filtros
Borrar filtros

Understand the fillmissing function with movmean

3 visualizaciones (últimos 30 días)
Tiago Dias
Tiago Dias el 27 de Mzo. de 2018
Comentada: Tiago Dias el 28 de Mzo. de 2018
Hi, I would like to ask how the fillmissing movmean method works.
I got A
A = [1 2 5;4 5 7;NaN -1 8;7 6 0];
A1 = fillmissing(A,'movmean',2);
A2 = fillmissing(A,'movmean',3);
A1 turns the NaN into 4, and A2 turns into 5.5.
I tried to open the function fillmissing but wasn't able to find how the calculation is made.
The 4 is the result of a nanmean of (4+NaN)/1 = 4, divided by 1 because it is a nanmean? The 5 is the result of a nanmean of (4+NaN+7)/2 = 11/3 = 5.5? divided by 2 because it is a nanmean?

Respuesta aceptada

Guillaume
Guillaume el 27 de Mzo. de 2018
Editada: Guillaume el 27 de Mzo. de 2018
The missing elements are in effect calculated with
movmean(A, k, 'omitnan')
with k your windows size.
As per the movmean documentation, when 'omitnan' is specified, the window is reduced as necessary when NaNs are encountered. When k is 2 movmean is normally the mean of the element and the previous one, so when a NaN is encountered the result is just the previous element, hence why you get 4. When k is 3 the |movmean |is the mean of the element and the ones on either side, so when a NaN is encountered the result is just the mean of the neighbouring elements.
edit: the best way to actually understand what is going on is to set a breakpoint at the start of the fillmissing function and step through it after you've called it.
  5 comentarios
Guillaume
Guillaume el 28 de Mzo. de 2018

There is no fillmissing option to do what you want, and it's a bit unusual to want that.

To me, it looks like you would be better off with an interpolation rather than a moving mean. Wouldn't

fillmissing(A, 'linear')

be good enough for you?

Tiago Dias
Tiago Dias el 28 de Mzo. de 2018
perhaps, i was just thinking on every options possible.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Preprocessing Data 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!

Translated by