Matlab 如何在2D中获得点到线段的距离?

Matlab 如何在2D中获得点到线段的距离?,matlab,geometry,Matlab,Geometry,我只是想知道,在Matlab中,是否有一种简单的方法可以获得2D中点和线段之间的距离?你对“线段”的定义是什么?线段基本上由两个点组成,a(x1,y1)B(x2,y2)你说的“Matlab中的简单方法”是什么意思?这是一个基本的数学问题,你可以把你的笔和纸的结果放在一行代码中。这些问题在这里有点离题。简单地说,他指的是内置函数或单线解决方案(这里没有给出)你对“线段”的定义是什么?线段基本上由两点组成,a(x1,y1)B(x2,y2)你说的“matlab中的简单方法”是什么意思?这是一个基本的数

我只是想知道,在Matlab中,是否有一种简单的方法可以获得2D中点和线段之间的距离?

你对“线段”的定义是什么?线段基本上由两个点组成,a(x1,y1)B(x2,y2)你说的“Matlab中的简单方法”是什么意思?这是一个基本的数学问题,你可以把你的笔和纸的结果放在一行代码中。这些问题在这里有点离题。简单地说,他指的是内置函数或单线解决方案(这里没有给出)你对“线段”的定义是什么?线段基本上由两点组成,a(x1,y1)B(x2,y2)你说的“matlab中的简单方法”是什么意思?这是一个基本的数学问题,你可以把你的笔和纸的结果放在一行代码中。这些问题在这里有点离题。简单地说,他指的是内置函数或单线解决方案(这里没有给出)你对“线段”的定义是什么?线段基本上由两点组成,a(x1,y1)B(x2,y2)你说的“matlab中的简单方法”是什么意思?这是一个基本的数学问题,你可以把你的笔和纸的结果放在一行代码中。这些问题在这里有点离题。简单地说,他指的是内置函数或单线解决方案(这里没有给出)你对“线段”的定义是什么?线段基本上由两点组成,a(x1,y1)B(x2,y2)你说的“matlab中的简单方法”是什么意思?这是一个基本的数学问题,你可以把你的笔和纸的结果放在一行代码中。这些问题在这里有点离题。简单地说,他指的是一个内置函数或一行解决方案(这里没有给出)
x = [0,0]; %some point
a = [1,2]; %segment points a,b
b = [3,5];

d_ab = norm(a-b);
d_ax = norm(a-x);
d_bx = norm(b-x);

if dot(a-b,x-b)*dot(b-a,x-a)>=0
    A = [a,1;b,1;x,1];
    dist = abs(det(A))/d_ab;        
else
    dist = min(d_ax, d_bx);
end