MATLAB Answers

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

1 view (last 30 days)
Jason on 30 Jan 2018
Commented: 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

Jason on 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:
[~,idx] = min(abs(diff))

Sign in to comment.

More Answers (0)