首页 > 解决方案 > 一维向量 Matlab 的逆

问题描述

我有一维向量。例如:y=[0.2 0.9 1.0 1.0]。我可以用它plot(y)来绘制一个图表,y(x)其中x值只是索引[1, 2, 3, 4]

现在,我想将它们映射到range:而不是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)按预期使用 ,我只会得到一条直线。

如何以xplot(x)相同的形状进行转换plot(y,x)

更新。:如果我尝试1./x在此处输入图像描述

标签: matlabplot

解决方案


我设法找到了一个解决方案,所以对于任何也需要它的人:

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

推荐阅读