matlab - 一维向量 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)
按预期使用 ,我只会得到一条直线。
如何以x
与plot(x)
相同的形状进行转换plot(y,x)
?
解决方案
我设法找到了一个解决方案,所以对于任何也需要它的人:
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);
推荐阅读
- testng - qaf 2.1.13 中无法解析功能文件中的元数据标签
- java - 在jsp中显示值列表
- python - django:如何使用信号?
- swift - 巩固 NSLayoutAnchor 的泛型
- c# - 在统一 C# 脚本中从预制件创建按钮
- classnotfoundexception - OserverCommandGetGephi ClassNotFoundException OrientDB 3.0.6
- c# - 为什么计算绑定工作比 IO 绑定工作在更少的线程上运行
- html - 如何在 AWS S3 上刷新我的网站上的数据?
- string - 如何在 Marie 中修剪字符串末尾的空格?
- android - 在嵌套滚动视图中的 Recyclerview 中获取滚动