Matlab中的插值

时间:2012-08-06 09:35:53

标签: matlab interpolation

我已完成插值,但我不知道是否可以保存数据。例如。这是我的代码:

load ab1.txt
x= ab1(:,2);
y= ab1(:,3);
z= 399.25:1:2179.5;
yi= interp1(x,y,z);
plot(x,y,'o',z,yi)

我有很多值,如352.4,352.5 354.3 ...我想通过插值得到每个数字中只有一个值。例如,对于值352我想得到插值的值。那可能吗?或者我将不得不做类似媒体或其他类似的事情?

1 个答案:

答案 0 :(得分:0)

y352 = interp1(X,Y,352) 

为您提供352处的插值。

2012年8月8日编辑:然后OP评论

  

谢谢mwengler!但问题是我需要通过插值找到缺失值。例如。我有350,351,353,354(x)及其值(y)。我需要Matlab识别出错过的数字352,并通过插值找到它们的值。那可能吗?非常感谢! :) - user1578688昨天

如果X中没有属于范围N<=x<N+1的真实样本,则从其他注释中考虑缺少整数N.所以你的问题的答案是: 1)找到缺少的数字并制作它们的数组 2)仅插入这些数字的值。

X = sort(X); % make sure our X go from least to most in order
XasInt = floor(X); % the integer X at each X value
XasIntFullRange = (X(1):X(end))'; % all X including "missing" values
XasIntMissing = setdiff(XasIntFullRange,XasInt); % just the missing ones
YasIntMissing = interp1(X,Y,XasIntMissing); % interpolated values of the missing