我有一个点云,我想计算 Matlab 中所有单个点之间的距离(最好没有重复)。
带有坐标的矩阵格式为:points [ p x n x d ]
. 其中p = 1
(目前),n 与点数一样大,d 与维数一样大(在本例中为 3)。
这是我拥有的数据:
points(:,:,1) = 1 2 3
points(:,:,2) = 4 5 6
points(:,:,3) = 7 8 9
所以我在三个维度上有三个点。现在使用 pdist,我尝试使用 and 计算每个点之间的欧几里得距离distances = pdist(points(:,1:3));
,distances = pdist(X(:,:,1:3));
但两者都只返回一个空矩阵。
有谁知道如何使用pdist
来计算这些距离?它应该返回 3 个距离,而不是 0,但我一定做错了什么。
顺便提一句。这个问题是对这个问题的跟进。起初我在评论中问过它,但认为它值得一个新问题,因为它是对原始问题的相当大的扩展。