我有1D向量。例如:y=[0.2 0.9 1.0 1.0]
。我可以用plot(y)
对其进行绘制,以获得y(x)
的图形,其中x
的值只是索引[1, 2, 3, 4]
。
现在,我想将它们映射到x
范围:[0,1]
而不是仅作为索引的x = linspace(0,1,length(y))
值。我得到:x=[0 0.3333 0.6667 1.000]
。
我现在可以使用plot(x,y)
来绘制图形:
但是,现在,我想要一个逆图,所以我用plot(y,x)
作图:
我希望现在可以使用plot(x)
获得与上述相同的形状。但是,如果我按预期使用plot(x)
,我只会得到一条直线。
如何以使x
与plot(x)
具有相同形状的方式转换plot(y,x)
?
答案 0 :(得分:1)
我设法找到了解决方案,所以对于也需要它的任何人:
x = linspace(0,1,length(y));
% not needed in this toy example, but can be required for a bigger vector:
[y_unique, idx] = unique(y);
inv_y = interp1(y_unique,x(idx),x);