从Matlab中的X和Y的数组中获取linspace上的Y列表

时间:2013-01-11 16:58:05

标签: matlab

我有两个数组 - 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)

我该怎么做?

1 个答案:

答案 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);