向量插值返回相同的值

时间:2019-03-08 16:17:53

标签: matlab vector interpolation

我正在尝试通过使用实验数据qmu的Y轴坐标对一对模拟点qyqL_nw进行插值。因此,想法是锁定Y值并在我的模拟数据中找到X对应项。虽然,我收到错误消息,指出我的值中有太多重复项,但我使用[qmu, qy] = unique(qmu,'stable');进行了排列,使其可以正常工作。问题是我使用哪种插值方法无关紧要,或者整个矢量获得相同的值,或者最后获得NaN和一些重复的值,这无关紧要。到目前为止,我的代码是:

[qmu, qy] = unique(qmu,'stable');    %Excluding duplicate numbers
iq5_2 = interp1(qy/h,qmu/max(qmu),qL_nw,'linear');

所有变量都是向量。

到目前为止,linear返回所有NaN,pchip重复值以及nearest部分NaN和重复值的结尾。我在这段代码中找不到错误,有人可以帮我解决这个问题吗?


简单地说:

我有一对向量XsYs以及第三个向量Ye,我想找到一个基于X的插值Ys向量Ye。尽管无论插值方法如何,结果都没有意义,或者插值全为Nan或沿向量具有相同的值,使用以下代码:

Xs = [1 2 3 4];
Ys = [0.5 0.8 1.3 1.8];
Ye = [0 0.5 1 2];
[Xs, Ys] = unique(Xs,'stable');
Xinterpolated = interp1(Ys,Xs,Ye,'linear');

所有这些操作的目的是比较两个来源(Xs,YsXe,Ye),以便我可以找到标准偏差和均方根值。

2 个答案:

答案 0 :(得分:0)

您正在尝试在Xs,Ys输入范围之外进行推断。试试这个:

xinterpol = interp1(Ys,Xs,Ye,'linear','extrap');

enter image description here

答案 1 :(得分:0)

我意识到我的向量没有排序。我对Xs and Yx对应用了排序功能,并且工作正常。无需使用unique删除重复项。感谢您的所有答复。对于将来可能遇到相同问题的用户,排序代码为:

[Ys, aux] = sort(Ys);
Xs = Xs(aux);
相关问题