Matlab - Arrays "móviles"

 
Vista:

Arrays "móviles"

Publicado por Juan Ibarra (1 intervención) el 20/12/2004 10:53:12
Hola,
tengo una duda, por si alguien me puede ayudar.
Tengo una columna con datos, 200 datos. Necesito calcular la std de los 50 primeros, luego del 2 al 51, luego del 3 al 52 ... etc.
Para calcular la media (móvil) el matlab utiliza la función filter, pero no sé hacerlo para la std.
Gracias al que pueda ayudarme.
Juan.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cálculo de desviación estándar en ventanas deslizantes

Publicado por Alejandro (145 intervenciones) el 06/10/2023 16:52:30
¡Hola Juan!

Puedes utilizar la función `stdfilt` de Matlab para calcular la desviación estándar en ventanas deslizantes de tus datos. Aquí te dejo un ejemplo de cómo podrías hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% Supongamos que tienes un vector de datos llamado 'datos'
datos = randn(200, 1);  % Ejemplo de datos aleatorios
 
% Especifica el tamaño de la ventana
tamanioVentana = 50;
 
% Calcula la desviación estándar en ventanas deslizantes
stdMovil = stdfilt(datos, true(tamanioVentana, 1));
 
% Ajusta los valores de stdMovil para los primeros elementos
for i = 1:tamanioVentana-1
    stdMovil(i) = std(datos(1:i));
end
 
% Ahora stdMovil contiene las desviaciones estándar en ventanas deslizantes
disp(stdMovil);

En este ejemplo, `stdfilt` se utiliza para calcular la desviación estándar en ventanas deslizantes de tamaño `tamanioVentana`. Luego, se ajustan manualmente los primeros valores para cubrir el caso de las primeras ventanas que no pueden tener el tamaño completo.

Espero que esto sea lo que necesitas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar