一维向量Matlab的逆

时间:2018-11-19 12:59:18

标签: matlab plot

我有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)来绘制图形:

enter image description here

但是,现在,我想要一个逆图,所以我用plot(y,x)作图: enter image description here

我希望现在可以使用plot(x)获得与上述相同的形状。但是,如果我按预期使用plot(x),我只会得到一条直线。

如何以使xplot(x)具有相同形状的方式转换plot(y,x)

更新。:如果我只尝试1./xenter image description here

1 个答案:

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