MATLAB Answers

Jason
0

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

Asked by Jason
on 30 Jan 2018
Latest activity Commented on by Jason
on 30 Jan 2018
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 Comment

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))

Sign in to comment.

Tags

1 Answer

Answer by Matt J
on 30 Jan 2018
 Accepted Answer

[~, idx] =min(abs(data - th));

  1 Comment

Sign in to comment.