2

我有两个数组 - X 点和 Y 点。X 数组有一些空格(例如 [0 1 2 6 7 8]),而 Y 数组仅包含该 X 的值。我已经将该数组作为小波变换的局部最大值。我可以用它来绘制它plot(X,Y)

现在我想在 linspace 上获取 Y - Y 必须包含从 0 到 8 的任何 X 的值。我想要与plot(Y)前一个相同的图plot(X, Y)

我怎样才能做到这一点?

4

1 回答 1

2

看起来您想要执行插值

xPts = [0 1 2 6 7 8];
yPts = ...

xPlot = 0:1:8;
yPlot = interp1(xPts,yPts,xPlot,'cubic')

plot(xPlot,yPlot)

检查interp1 的文档以了解不同的插值方案。

如果有重复的 x 值,您可以平均相应的 y 值

   xPtsRep = [0 0 1 2 6 7 7 8]
   yPtsRep = ...

   [xPts,~,xIdx] = unique(xPtsRep);
   yPts = accumarray(xIdx,yPtsRep,[],@mean);
于 2013-01-11T17:03:44.830 回答