Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

movmean

Descripción

M = movmean(A,k) devuelve los valores locales de media de k puntos, donde se calcula cada media 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 media se toma únicamente sobre los elementos que rellenan la ventana. M es del mismo tamaño que A.

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

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

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

ejemplo

M = movmean(A,[kb kf]) calcula la media 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 = movmean(___,dim) especifica la dimensión de A en la que operar para cualquiera de las sintaxis anteriores. Por ejemplo, si A es una matriz, movmean(A,k,2) opera en las columnas de A, calculando la media deslizante de k elementos para cada fila.

ejemplo

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

ejemplo

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

ejemplo

Ejemplos

contraer todo

Calcule la media 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 = movmean(A,3)
M = 1×10

    6.0000    6.0000    4.3333    1.0000   -2.0000   -2.0000   -0.3333    2.0000    4.0000    4.5000

Calcule la media 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 = movmean(A,[2 0])
M = 1×10

    4.0000    6.0000    6.0000    4.3333    1.0000   -2.0000   -2.0000   -0.3333    2.0000    4.0000

Calcule la media 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 = movmean(A,3,2)
M = 3×3

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

Calcule la media móvil centrada en tres puntos de un vector fila que contiene dos elementos NaN.

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

    6.0000       NaN       NaN       NaN   -2.0000       NaN       NaN       NaN    4.0000    4.5000

Recalcule la media, pero omita los valores NaN. Cuando movmean omite los elementos NaN, calcula la media sobre los elementos restantes en la ventana.

M = movmean(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 media 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 = movmean(A,k,"SamplePoints",t)
M = 1×6

    6.0000    6.0000    4.3333    1.0000   -2.0000   -2.5000

Calcule la media 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 medias 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 = movmean(A,3,"Endpoints","discard")
M = 1×8

    6.0000    4.3333    1.0000   -2.0000   -2.0000   -0.3333    2.0000    4.0000

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 medias móviles de las variables de la tabla con movmean.

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

    5.5    3     6.5
      5    5       5
    3.5    7     4.5

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

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

    8     3     6.5
    3     5       5
    4     7     4.5

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

M3 = movmean(T,3,ReplaceValues=false)
M3=3×6 table
    A1    A2    A3    A1_movmean    A2_movmean    A3_movmean
    __    __    __    __________    __________    __________

    8     1     6        5.5            3            6.5    
    3     5     7          5            5              5    
    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 media centrada incluye el elemento en la posición actual, además de los vecinos que lo rodean.

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

movmean(A,3) computation. The elements in the sample window are 1, 3, and 5, so the resulting local mean 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, movmean(A,[2 1]) calcula un arreglo de valores de media locales de cuatro puntos.

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

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 movmean, es decir, la dirección en la que se desliza la ventana especificada.

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

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

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

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

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

Si A es una tabla o un horario, no se puede especificar dim. La función movmean 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 media. 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 los valores NaN en A y calculan cada media 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 = movmean(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 mostrar valores de media de salida cuando la ventana no se solape 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 medias, 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, movmean(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, movmean opera sobre todas las variables. Este comportamiento es el predeterminado.

  • Si se especifica DataVariables, movmean 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 movmean.

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

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

Más acerca de

contraer todo

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2016a

expandir todo