Suavizado de datos por tramos
Publicado por LBH (1 intervención) el 07/10/2016 18:14:52
Hola,
Escribo para pedirles ayuda con el suavizado de curvas experimentales en Matlab.
Tengo una serie de datos ordenados en una matriz de dos columnas con un gran número de filas.
Quiero realizar un smooth, para lo que estoy recurriendo a:
%data es una matriz de 2 columnas
[m n]=size(data);
matriz_auxiliar=ones(m,1);
%SMOOTH
[m ~]=size(data);
sol=zeros(m, 2);
for span=5:n:50
sol(:,2)=smooth(data(:,1),data(:,2),span,'lowess');
sol(:,1)=data(:,1)
%el resultado de smooth es un vector columna
Pues bien, esto me realiza perfectamente el smoothing que le indico pero lo que me gustaría es poder aplicar varios smooth distintos a esta curva al mismo tiempo, es decir, determinar tres intervalos para en cada uno de ellos aplicar un smooth diferente.
Lo único que se me ocurre es dividir mi matriz en tres submatrices y aplicar a cada una de ellas el smooth correspondiente, pero esto me genera más trabajo a la hora de pilotear.
Espero que se les ocurran mejores ideas y se animen a ayudarme. Gracias de antemano.
Saludos
Escribo para pedirles ayuda con el suavizado de curvas experimentales en Matlab.
Tengo una serie de datos ordenados en una matriz de dos columnas con un gran número de filas.
Quiero realizar un smooth, para lo que estoy recurriendo a:
%data es una matriz de 2 columnas
[m n]=size(data);
matriz_auxiliar=ones(m,1);
%SMOOTH
[m ~]=size(data);
sol=zeros(m, 2);
for span=5:n:50
sol(:,2)=smooth(data(:,1),data(:,2),span,'lowess');
sol(:,1)=data(:,1)
%el resultado de smooth es un vector columna
Pues bien, esto me realiza perfectamente el smoothing que le indico pero lo que me gustaría es poder aplicar varios smooth distintos a esta curva al mismo tiempo, es decir, determinar tres intervalos para en cada uno de ellos aplicar un smooth diferente.
Lo único que se me ocurre es dividir mi matriz en tres submatrices y aplicar a cada una de ellas el smooth correspondiente, pero esto me genera más trabajo a la hora de pilotear.
Espero que se les ocurran mejores ideas y se animen a ayudarme. Gracias de antemano.
Saludos
Valora esta pregunta


0