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 个评论

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

请先登录,再进行评论。

回答(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 个评论

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

请先登录,再进行评论。

"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

类别

在 帮助中心 和 File Exchange 中查找有关 Interpolation 的更多信息

产品

版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by