2
我有兩個數組 - X點和Y點。 X數組有一些空格(例如[0 1 2 6 7 8]),而Y數組僅包含Xes的值。我從小波變換中得到了這個數組作爲局部最大值。我可以用plot(X,Y)
在Matlab中從X和Y的數組中獲取列表中的Y的列表
現在我想在linspace上得到Y - Y必須包含從0到8的任何X的值。我想要有與之前的plot(X, Y)
相同的圖plot(Y)
。
我該怎麼做?
我有兩個數組 - X點和Y點。 X數組有一些空格(例如[0 1 2 6 7 8]),而Y數組僅包含Xes的值。我從小波變換中得到了這個數組作爲局部最大值。我可以用plot(X,Y)
在Matlab中從X和Y的數組中獲取列表中的Y的列表
現在我想在linspace上得到Y - Y必須包含從0到8的任何X的值。我想要有與之前的plot(X, Y)
相同的圖plot(Y)
。
我該怎麼做?
看起來要進行插值
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);
這正是我想要的,但我遇到了一個問題 - 我的兩個X矢量有一些重複的值,我得到關於'stricktly monotonic increase'矢量的錯誤。在我的情況下,矢量正在增加,但不是嚴格的。我能用這個做什麼? – skayred
@skayred:你可以例如平均對應於重複x條目的y值。 – Jonas