Question on using interpolate function

I've the following
x = [1 2 3 4 5 6];
data = [0.1 0.2 0.3 0.4 0.4 0.4];
vq1 = interp1(data,x,0.4)
I want to find the x value at which data has 0.4 (first occurence).
I used interpolate. But the following error occurS
The grid vectors must contain unique points.
Any suggestions on how to proceed when data doesn't contain uniqe values will be helpful

1 Comment

I'm still expecting answers for this post. Unfortunately, the following suggestions didn't help.

Sign in to comment.

Answers (2)

Use logical indexing:
x = [1 2 3 4 5 6];
data = [0.1 0.2 0.3 0.4 0.4 0.4];
vq1 = x(abs(data-0.4)<10^-5)

1 Comment

I'm looking for an interpolation function. It may happen that Ive to check for a value of 0.45 that is not present in data

Sign in to comment.

"I want to find the x value at which data has 0.4 (first occurence)."
match_loc = find(data == 0.4);
val = x(x == match_loc(1)); % first occurance of 0.4

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Release

R2019b

Asked:

on 28 Jan 2020

Commented:

on 28 Jan 2020

Community Treasure Hunt

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

Start Hunting!