我有两个数组 - 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)
。
我怎样才能做到这一点?
我有两个数组 - 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)
。
我怎样才能做到这一点?
看起来您想要执行插值
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);