Contenido principal

movmedian

Descripción

M = movmedian(A,k) devuelve los valores locales de mediana de k puntos, donde se calcula cada mediana con una ventana deslizante de longitud k a través de elementos vecinos de A. Cuando k es impar, la ventana se centra sobre el elemento en la posición actual. Cuando k es par, la ventana se centra sobre los elementos actuales y anteriores. El tamaño de la ventana está truncado automáticamente en los puntos finales cuando no hay suficientes elementos para rellenar la ventana. Cuando la ventana está truncada, la mediana se toma únicamente sobre los elementos que rellenan la ventana. M es del mismo tamaño que A.

  • Si A es un vector, movmedian opera en la longitud del vector A.

  • Si A es un arreglo multidimensional, movmedian opera en la primera dimensión de A cuyo tamaño no es igual a 1.

  • Si A es una tabla o un horario, movmedian opera a lo largo de las variables de A. (desde R2025a)

ejemplo

M = movmedian(A,[kb kf]) calcula la mediana con una ventana de longitud kb+kf+1 que incluye el elemento en la posición actual, los elementos kb hacia atrás, y los elementos kf hacia adelante.

ejemplo

M = movmedian(___,dim) especifica la dimensión de A en la que operar para cualquiera de las sintaxis anteriores. Por ejemplo, si A es una matriz, movmedian(A,k,2) opera en las columnas de A, calculando la mediana deslizante de k elementos para cada fila.

ejemplo

M = movmedian(___,nanflag) especifica si incluir u omitir valores NaN en A. Por ejemplo, movmedian(A,k,"omitnan") ignora los valores NaN al calcular cada mediana. De forma predeterminada, movmedian incluye valores NaN.

ejemplo

M = movmedian(___,Name,Value) especifica parámetros adicionales para la mediana móvil utilizando uno o más argumentos de par nombre-valor. Por ejemplo, si x es un vector de valores de tiempo, movmedian(A,k,"SamplePoints",x) calcula la mediana móvil relativa a los tiempos en x.

ejemplo

Ejemplos

contraer todo

Calcule la mediana móvil centrada en tres puntos de un vector fila. Cuando hay menos de tres elementos en la ventana en los puntos finales, tome la media sobre los elementos que están disponibles.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmedian(A,3)
M = 1×10

    6.0000    6.0000    6.0000   -1.0000   -2.0000   -2.0000   -1.0000    3.0000    4.0000    4.5000

Calcule la mediana móvil final en tres puntos de un vector fila. Cuando hay menos de tres elementos en la ventana en los puntos finales, tome la media sobre los elementos que están disponibles.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmedian(A,[2 0])
M = 1×10

     4     6     6     6    -1    -2    -2    -1     3     4

Calcule la mediana móvil centrada en tres puntos para cada fila de una matriz. La ventana comienza en la primera fila y se desliza horizontalmente hasta el final de la fila. Después, se mueve hacia la segunda fila, y así sucesivamente. El argumento de dimensión es dos, que desliza la ventana a través de las columnas de A.

A = [4 8 6; -1 -2 -3; -1 3 4]
A = 3×3

     4     8     6
    -1    -2    -3
    -1     3     4

M = movmedian(A,3,2)
M = 3×3

    6.0000    6.0000    7.0000
   -1.5000   -2.0000   -2.5000
    1.0000    3.0000    3.5000

Cree un vector fila que contenga valores NaN.

A = [4 8 NaN -1 -2 -3 NaN 3 4 5];

Calcule la mediana móvil centrada en tres puntos de un vector fila, sin valores NaN. Para ventanas que contienen un valor NaN, movmedian se calcula con elementos que no son NaN.

M = movmedian(A,3,"omitnan")
M = 1×10

    6.0000    6.0000    3.5000   -1.5000   -2.0000   -2.5000         0    3.5000    4.0000    4.5000

Calcule una mediana móvil centrada en 3 horas de los datos en A de acuerdo con el vector de tiempo t.

A = [4 8 6 -1 -2 -3];
k = hours(3);
t = datetime(2016,1,1,0,0,0) + hours(0:5)
t = 1×6 datetime
   01-Jan-2016 00:00:00   01-Jan-2016 01:00:00   01-Jan-2016 02:00:00   01-Jan-2016 03:00:00   01-Jan-2016 04:00:00   01-Jan-2016 05:00:00

M = movmedian(A,k,"SamplePoints",t)
M = 1×6

    6.0000    6.0000    6.0000   -1.0000   -2.0000   -2.5000

Calcule la mediana móvil centrada en tres puntos de un vector fila, pero descarte cualquier cálculo que utilice menos de tres puntos desde la salida. En otras palabras, devuelva únicamente las medianas calculadas de una ventana completa de tres elementos, descartando los cálculos de punto final.

A = [4 8 6 -1 -2 -3 -1 3 4 5];
M = movmedian(A,3,"Endpoints","discard")
M = 1×8

     6     6    -1    -2    -2    -1     3     4

Cree una tabla a partir de las columnas de un cuadrado mágico.

A = magic(3);
T = array2table(A)
T=3×3 table
    A1    A2    A3
    __    __    __

    8     1     6 
    3     5     7 
    4     9     2 

Calcule las medianas móviles de las variables de la tabla con movmedian.

M = movmedian(T,3)
M=3×3 table
    A1     A2    A3 
    ___    __    ___

    5.5    3     6.5
      4    5       6
    3.5    7     4.5

Para calcular medianas móviles solo para las variables especificadas, especifique el argumento de par nombre-valor DataVariables.

M2 = movmedian(T,3,DataVariables=["A2" "A3"])
M2=3×3 table
    A1    A2    A3 
    __    __    ___

    8     3     6.5
    3     5       6
    4     7     4.5

Para añadir las medianas móviles a la tabla en lugar de sustituir los valores, especifique ReplaceValues como false.

M3 = movmedian(T,3,ReplaceValues=false)
M3=3×6 table
    A1    A2    A3    A1_movmedian    A2_movmedian    A3_movmedian
    __    __    __    ____________    ____________    ____________

    8     1     6         5.5              3              6.5     
    3     5     7           4              5                6     
    4     9     2         3.5              7              4.5     

Argumentos de entrada

contraer todo

Datos de entrada, especificados como vector, matriz, arreglo multidimensional, tabla u horario.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | table | timetable

Longitud de la ventana, especificada como escalar numérico o de duración. Cuando k es un escalar entero positivo, la mediana centrada incluye el elemento en la posición actual, además de los vecinos que lo rodean.

Por ejemplo, movmedian(A,3) calcula un arreglo de valores de mediana locales de tres puntos.

movmedian(A,3) computation. The elements in the sample window are 1, 3, and 5, so the resulting local median is 3.

Longitud de ventana direccional, especificada como vector fila numérico o de duración que contiene dos elementos. Cuando kb y kf son escalares enteros positivos, el cálculo es sobre los elementos kb+kf+1. El cálculo incluye el elemento en la posición actual, los elementos kb anteriores a la posición actual, y los elementos kf posteriores a la posición actual.

Por ejemplo, movmedian(A,[2 1]) calcula un arreglo de valores de mediana locales de cuatro puntos.

movmedian(A,[2 1]) computation. The elements in the sample window are 4, 1, 3, and 5, so the resulting local median is 3.5.

Dimensión en la que operar, especificada como escalar entero positivo. Si no especifica la dimensión, el valor predeterminado es la primera dimensión del arreglo cuyo tamaño no es igual a 1.

La dimensión dim es la que indica sobre cuál opera movmedian, es decir, la dirección en la que se desliza la ventana especificada.

Considere una matriz de entrada de m por n, A:

  • movmedian(A,k,1) calcula la mediana deslizante de k elementos para cada columna de A y devuelve una matriz de m por n.

    movmedian(A,k,1) column-wise operation

  • movmedian(A,k,2) calcula la mediana deslizante de k elementos para cada fila de A y devuelve una matriz de m por n.

    movmedian(A,k,2) row-wise operation

Si A es una tabla o un horario, no se puede especificar dim. La función movmedian siempre opera a lo largo de las variables de tablas y horarios. (desde R2025a)

Condición de valor faltante, especificada como uno de estos valores:

  • "includemissing" o "includenan": incluyen los valores NaN en A al calcular cada mediana. Si un elemento de la ventana es NaN, el elemento correspondiente en M es NaN. "includemissing" y "includenan" presentan el mismo comportamiento.

  • "omitmissing" u "omitnan": ignoran todos los valores NaN en A y calculan cada mediana en menos puntos. Si todos los elementos de la ventana son NaN, el elemento correspondiente en M es NaN. "omitmissing" y "omitnan" presentan el mismo comportamiento.

Argumentos de par nombre-valor

contraer todo

Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: M = movmedian(A,k,"Endpoints","fill")

Método para tratar las ventanas cercanas a los puntos finales, especificado como una de estas opciones:

ValorDescripción
"shrink"Reduce el tamaño de la ventana cerca de los puntos finales de la entrada para incluir únicamente elementos existentes.
"discard"

No muestra valores de mediana de salida cuando la ventana no se solapa por completo con elementos existentes.

Si A es una tabla o un horario, no se puede especificar Endpoints como "discard".

"fill"Reemplaza los elementos no existentes con NaN.
escalar númerico lógicoReemplaza los elementos no existentes con el valor numérico o lógico especificado.

Puntos de muestra para calcular medianas, especificados como vector. Los puntos de muestra representan las ubicaciones de los datos en A. Los puntos de muestra no tienen que ser muestreados de manera uniforme. De forma predeterminada, el vector de puntos de muestra es [1 2 3 ... ].

Las ventanas móviles se definen de forma relativa a los puntos de muestra, que se deben ordenar y contienen elementos únicos. Por ejemplo, si t es un vector de tiempos correspondiente a los datos de entrada, movmedian(rand(1,10),3,"SamplePoints",t) tiene una ventana que representa el intervalo de tiempo entre t(i)-1.5 y t(i)+1.5.

Cuando el vector de puntos de muestra tiene el tipo de datos datetime o duration, la longitud de la ventana móvil debe tener el tipo duration.

Si los puntos de muestra no están espaciados de manera uniforme y se especifica Endpoints, su valor debe ser "shrink".

Desde R2025a

Variables de tabla u horario sobre las que operar, especificadas como una de las opciones de esta tabla.

  • Si no se especifica DataVariables, movmedian opera sobre todas las variables. Este comportamiento es el predeterminado.

  • Si se especifica DataVariables, movmedian solo opera sobre las variables especificadas. Otras variables no especificadas por DataVariables pasan a la salida sin modificaciones.

Esquema de indexaciónValores que se desea especificarEjemplos

Nombre de la variable

  • Un escalar de cadena o un vector de caracteres

  • Un arreglo de cadenas o un arreglo de celdas de vectores de caracteres

  • Un objeto pattern

  • "A" o 'A': una variable llamada A

  • ["A" "B"] o {'A','B'}: dos variables llamadas A y B

  • "Var"+digitsPattern(1): variables cuyo nombre empieza por "Var" seguido de un solo dígito

Índice de variable

  • Un número de índice que hace referencia a la ubicación de una variable en la tabla

  • Un vector de números

  • Un vector logical. Normalmente, este vector es de la misma longitud que el número de variables, pero puede omitir los valores 0 (false) al final.

  • 3: la tercera variable de la tabla

  • [2 3]: la segunda y la tercera variable de la tabla

  • [false false true]: la tercera variable

Identificador de función

  • Un identificador de función que toma una variable de tabla como entrada y devuelve un escalar logical

  • @isnumeric: todas las variables que contienen valores numéricos

Tipo de variable

  • Un subíndice vartype que selecciona variables de un tipo especificado

  • vartype("numeric"): todas las variables que contienen valores numéricos

Desde R2025a

Indicador de valores de reemplazo, especificado como uno de estos valores cuando A es una tabla o un horario.

  • true o 1: en la tabla u horario de salida, reemplaza las variables de la tabla u horario de entrada por variables que contienen valores de salida de movmedian.

  • false o 0: añade variables que contienen valores de salida de movmedian a la tabla u horario de salida.

Para datos de entrada de vectores, matrices o arreglos multidimensionales, ReplaceValues no es compatible.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2016a

expandir todo