Find max/min while ignoring data spikes

11 visualizaciones (últimos 30 días)
Marcus Solis
Marcus Solis el 14 de Jun. de 2017
Comentada: Marcus Solis el 15 de Jun. de 2017
My problem is that I want to ignore the sudden dropoff in the attached plot. I'm using the following to get the minimum and maximum:
ErrPriMax = ErrorPri<1;
ErrorPriMax = max(ErrorPri(ErrPriMax));
ErrPriMin = ErrorPri>-.4;
ErrorPriMin = min(ErrorPri(ErrPriMin));
ErrRedMax = ErrorRed<1;
ErrorRedMax = max(ErrorRed(ErrRedMax));
ErrRedMin = ErrorRed>-.4;
ErrorRedMin = min(ErrorRed(ErrRedMin));
The correct minimums should be around -.2 for the primary error and -.05 for the redundant error; however, I am getting around -.4 for both since that is the hard limit I coded in. Is there a better way to do this? I essentially want to ignore the two spikes.
ErrorPri and ErrorRed are the datasets I am working with along with Time. They dont go to infinite, they go more closely to -20 (which is far greater than reality).
Any help is greatly appreciated.
Thank You!

Respuestas (1)

JohnGalt
JohnGalt el 15 de Jun. de 2017
it looks like '-1' is some specific value which you want to ignore... so you remove all '-1's from the array before you calculate the min e.g.
testArray = [.1 .2. -.1 .2 .1 .2 -1 .2. .1];
testArray(testArray<=-1)==[];
disp(testArray) % which will be: [.1 .2. .1 .2 .1 .2 .2. .1];
disp(min(testArray)) % which will be -.1
Just be aware that you have removed a point from your original array so you have changed the length of the original
  1 comentario
Marcus Solis
Marcus Solis el 15 de Jun. de 2017
The only problem with that is that the data goes to -1. So the array looks more like [-0.87 -0.91 -0.95 -0.97 -0.99 -1.02...]. So when I add a filter like the one you have above, the min is going to be -0.99. I was thinking that I could take the derivative, and if it goes close to infinity then I know there is a spike. But even doing that I would have to compare the derivative across 30 to 50 points.

Iniciar sesión para comentar.

Categorías

Más información sobre Electrophysiology en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by