我有一个图表:速度是汽车转速的函数。实际图表由四个子图组成(汽车的4个齿轮各一个)。我将这些子图与for循环和一些if语句结合在一起。结果图如下所示。
我需要添加一个与图形的所有顶部相切的图形,如红线。最终结果如下:
(现在仍然没有红线,显然......)
这些是切线与图形接触的坐标:(17,5130.36),(28,3177.98),(39,2239.37),(51,1714.72)。
答案 0 :(得分:0)
因为你已经知道了切点,
x = [17 28 39 51];
y = [5130.36 3117.98 2239.37 1714.72];
plot(x, y, 'b.')
解决方案是一个简单的插值
xs = linspace(min(x), max(x), 100);
ys = spline(x, y, xs);
hold on
plot(xs, ys, 'r')
结果:
我在这里使用了Matlab的标准三次样条插值;根据您的数据属性,其他interpolation functions可能会提供更好的结果。特别是,如果您不仅知道切点的位置而且还知道切线斜率,则可以使用该信息对分段多项式插值施加约束。