在 Matlab 中从 x-y 离散映射本身采样中间点

Sampling internediate points from x-y discrete mapping itself in Matlab

我绘制了一个分段定义的连续线性函数,由几条首尾相连的斜直线组成:-

x=[0,1/4,1/2,3/4,1];
oo=[1.23 2.31 1.34 5.69 7] % edit
y=[oo(1),oo(2),oo(3),oo(4),oo(5)];
plot(x,y,'g--')

我现在想从这个图本身中采样点,比如说我想要 y 对应于 x=0.89。如何使用 Matlab 实现? Matlab 有内置的特殊功能吗?

是的,有一个内置函数:interp1:

vq = interp1(x,v,xq) returns interpolated values of a 1-D function at specific query points using linear interpolation. Vector x contains the sample points, and v contains the corresponding values, v(x). Vector xq contains the coordinates of the query points.
[...]

有关其他选项,请参阅链接文档。例如,您可以指定 插值方法 (默认为线性),或者是否要 外推 (即允许 xq值位于原始 x 范围之外)。