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 Commento

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

Accedi per commentare.

Risposte (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 Commento

Deepa Maheshvare
Deepa Maheshvare il 28 Gen 2020
Modificato: Deepa Maheshvare il 28 Gen 2020
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

Accedi per commentare.

"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

Categorie

Scopri di più su MATLAB in Centro assistenza e File Exchange

Prodotti

Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by