Finding a point in data with FIND - accommodate both increasing and decreasing data

1 visualización (últimos 30 días)
Hello, I have data that I want to find the point closest to a threshold (th=800).
1728.00 1755.00 1778.00 1738.00 1810.00 1552.00 1274.00 924.00 668.00 407.00 202.00 132.00
then I use:
idx = single(find(data >= th, 1, 'last'));
However, sometimes the data is reversed so it would be 'first'.
idx = single(find(data >= th, 1, 'first'));
How can I accommodate both scenarios?
(For info, i then use this index to seed a more accurate value)
vq1 = interp1(line(yval-1:yval+1), x(yval-1:yval+1), th,'pchip'); % Interpolate In Region
  1 comentario
Jason
Jason el 30 de En. de 2018
But the data is randomly alternated, and I don't want to have to go into the code each time. I think I have done it with:
diff=line-th
[~,idx] = min(abs(diff))

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 30 de En. de 2018
[~, idx] =min(abs(data - th));

Más respuestas (0)

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by