使用 MATLAB,想象一个 Nx6 数字数组,它表示 N 段,具有 3+3=6 个初始和结束点坐标。
假设我有一个function Calc_Dist( Segment_1, Segment_2 )
将两个 1x6 数组作为输入,并且经过一些操作返回一个标量,即这两个段之间的最小欧几里得距离。
我想计算列表的所有 N 段之间的成对最小距离,但希望避免双循环这样做。
我无法理解 MATLAB 函数的文档bsxfun
,所以我无法完成这项工作。为了一个最小的例子(距离计算显然不正确):
function scalar = calc_dist( segment_1, segment_2 )
scalar = sum( segment_1 + segment_2 )
end
和主要
Segments = rand( 1500, 6 )
Pairwise_Distance_Matrix = bsxfun( @calc_dist, segments, segments' )
有什么办法可以做到这一点,还是我被迫使用双循环?
谢谢你的任何建议