
Duda con un código
Publicado por lele (6 intervenciones) el 06/06/2016 21:12:22
Hola a todos,
estoy haciendo un código que consiste en un bucle for y un bucle if anidado,
Lo que quiero conseguir es hacer un filtrado de una variable, de forma que comparo cada valor de la variable con el valor anterior de la serie para eliminar aquellos valores que tengan una variación mayor del 20% con
respecto al anterior, es decir que si es menos del 0.8 del valor anterior o mayor de 1.2 se eliminará. Lo que he hecho es convertir en cero esos valores y luego buscar, con la función find los valores distintos de cero.
Tiene que tener algún fallo que no localizo porque no me hace lo que quiero, me almacena los valores del contador y no me elimina ningún valor
Gracias de antemano
estoy haciendo un código que consiste en un bucle for y un bucle if anidado,
Lo que quiero conseguir es hacer un filtrado de una variable, de forma que comparo cada valor de la variable con el valor anterior de la serie para eliminar aquellos valores que tengan una variación mayor del 20% con
respecto al anterior, es decir que si es menos del 0.8 del valor anterior o mayor de 1.2 se eliminará. Lo que he hecho es convertir en cero esos valores y luego buscar, con la función find los valores distintos de cero.
1
2
3
4
5
6
7
i=1; %defino el intervalo
for i=2:length(a);
if (a(i)<0.8*a(i-1) && a(i)>1.2*a(i-1));
a(i)=0;
end
end
b=find(a~=0); %busco los valores distintos de cero
Tiene que tener algún fallo que no localizo porque no me hace lo que quiero, me almacena los valores del contador y no me elimina ningún valor
Gracias de antemano
Valora esta pregunta


0