How to interpolate to the nearest value
47 次查看(过去 30 天)
显示 更早的评论
HI
I have vector, v=(x,Y) and I want to find the nearest value of 'x' for C=(1,yi) rather than the interpolated values of xi's .I can find the interpolated value but taking the nearest values of x is difficult for me. Can you help me with this?
0 个评论
采纳的回答
Kelly Kearney
2013-6-10
If you look at the documentation of interp1, you'll see that nearest neighbor interpolation is an option:
interp1(x,y,xi, 'nearest')
更多回答(1 个)
Pourya Alinezhad
2013-6-10
here is the answer to your question. :) t = 1900:10:1990; >> p = [75.995 91.972 105.711 123.203 131.669... 150.697 179.323 210.212 256.505 270.633];
>> interp1(t,p,1975) ans = 233.3585
4 个评论
Pourya Alinezhad
2013-6-10
so you can do in an other way : x=[ 1 8 35 ...] y=[ 23 55 3 ...] for example we want nearest value to x=8;
a=find(x,8);
min=inf;
num_min=[];
for i=1:length(x)
if abs(y(a)-y(i))<min
min=abs(y(a)-y(i));
num_min=i;
end
end
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!