0

我做了一个插值,但我不知道是否可以保存数据。例如。这是我的代码:

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,我想获得插值的值。那可能吗?或者我将不得不做一些不同的事情,比如媒介或类似的东西?

4

1 回答 1

0
y352 = interp1(X,Y,352) 

为您提供 352 处的插值。

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

谢谢姆温格勒!但问题是我需要通过插值找到缺失值。例如。我有 350、351、353、354 (x) 及其值 (y)。我需要 Matlab 确定数字 352 丢失并通过插值找到它们的值。那可能吗?非常感谢!:) – user1578688 昨天

从您的其他评论中,如果 X 中没有在 range 中的真实样本,您认为整数 N 丢失N<=x<N+1。所以你的问题的答案是: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
于 2012-08-06T16:38:09.133 回答