通过matlab将一条线扩展到3个点



我只是想在matlab中画一条通过以下点的线。目前,该线仅延伸到点。我需要延伸和截取x轴。代码低于

A = [209.45 198.066 162.759];
B = [1.805 1.637 1.115]; 
plot(A,B,'*');
axis([0 210 0 2]);
hold on
line(A,B)
hold off

如果你想用相应的y==0点来增加你的点,我建议使用interp1来获得x-截距:

A = [209.45 198.066 162.759];
B = [1.805 1.637 1.115];
x0 = interp1(B,A,0,'linear','extrap'); %extrapolate (y,x) at y==0 to get x0
[newA, inds] = sort([x0 A]); %insert x0 where it belongs
newB = [0 B];
newB = newB(inds); %keep the same order with B
plot(A,B,'b*',newA,newB,'b-');

这将使用interp1执行线性插值,并打开外推。通过对(B,A)对进行插值,我们实际上反转了线性函数。

接下来,我们将(x0,0)点添加到数据中,但由于matlab按点的顺序绘制线,因此我们必须根据x分量来sort矢量。排序顺序然后用于在扩展的B向量中保持相同的顺序。

最后绘制出这条线。我使用plot'-'linespec在与点本身相同的命令中绘制线。如果还指示了(x0,0)点,则您可以使用plot(newA,newB,'*-');将两个标记和线绘制在一起,以确保颜色匹配(在上面的代码中,我手动在两个图上设置相同的蓝色)。

最新更新