Effacer les filtres
Effacer les filtres

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

2 vues (au cours des 30 derniers jours)
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 commentaire
Jason
Jason le 30 Jan 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))

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 30 Jan 2018
[~, idx] =min(abs(data - th));

Plus de réponses (0)

Catégories

En savoir plus sur Visual Exploration dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by