Hello guys , please help me ! I

3 views (last 30 days)
Dombrovschi Andrei
Dombrovschi Andrei on 1 Feb 2018
Commented: Star Strider on 1 Feb 2018
I have two vectors :
x= [1 2 3 4 5 6]
and
y=[2.3 4.3 5 4.7 9 12]
and i need to find the value of y in x = 3.5
  6 Comments
Dombrovschi Andrei
Dombrovschi Andrei on 1 Feb 2018
Edited: per isakson on 1 Feb 2018
x= [1 2 3 4 5 6]
y=[2.3 4.3 5 4.7 9 12]
figure
plot(x,y,'r-')
value = xx==3.5(find(y));
hold on
plot(3.5,value,'r*')
per isakson
per isakson on 1 Feb 2018
Isn't that interpolation
>> interp1( x, y, 3.5 )
ans =
4.8500

Sign in to comment.

Answers (2)

Star Strider
Star Strider on 1 Feb 2018
It is an interpolation, regardless of the method you want to use. There are likely several ways to do this.
Using interp1:
x = [1 2 3 4 5 6];
y = [2.3 4.3 5 4.7 9 12];
idx = find(x <= 3.5, 1, 'last');
yi = interp1(x(idx:idx+1), y(idx:idx+1), 3.5, 'linear')
yi =
4.8500
If you want to use the 'previous', 'next', or 'nearest' methods instead of 'linear', the results are 5, 4.7, and 4.7 respectively.

Dombrovschi Andrei
Dombrovschi Andrei on 1 Feb 2018
thanks guys !

Categories

Find more on Interpolation in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!