How to interpolate to the nearest value

29 ビュー (過去 30 日間)
Ede gerlderlands
Ede gerlderlands 2013 年 6 月 10 日
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?

採用された回答

Kelly Kearney
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 件のコメント
Ede gerlderlands
Ede gerlderlands 2013 年 6 月 10 日
Thank you.

サインインしてコメントする。

その他の回答 (1 件)

Pourya Alinezhad
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 件のコメント
Ede gerlderlands
Ede gerlderlands 2013 年 6 月 10 日
yes, am new to matlab and find it difficult
Pourya Alinezhad
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeInterpolation についてさらに検索

Translated by