我有两个数组 - X点和Y点。 X数组有一些空格(例如[0 1 2 6 7 8]),Y数组只包含该Xes的值。我已经将该数组作为小波变换的局部最大值。我可以用plot(X,Y)
现在我想在linspace上得到Y - Y必须包含从0到8的任何X的值。我希望与前一个plot(Y)
具有相同的图plot(X, Y)
。
我该怎么做?
答案 0 :(得分:2)
看起来你想要执行插值
xPts = [0 1 2 6 7 8];
yPts = ...
xPlot = 0:1:8;
yPlot = interp1(xPts,yPts,xPlot,'cubic')
plot(xPlot,yPlot)
检查the documentation for interp1是否有不同的插值方案。
如果有重复的x值,则可以平均相应的y值
xPtsRep = [0 0 1 2 6 7 7 8]
yPtsRep = ...
[xPts,~,xIdx] = unique(xPtsRep);
yPts = accumarray(xIdx,yPtsRep,[],@mean);