我有一个点云,我想在Matlab中计算每个点之间的距离(最好不要重复)。
具有坐标的矩阵格式为:points [ p x n x d ]。在p = 1 (目前)中,n与点数一样大,d与维数一样大(本例中为3)。
这是我掌握的数据:
points(:,:,1) = 1 2 3points(:,:,2) = 4 5 6points(:,:,3) = 7 8 9所以我有三维空间的三点。现在使用pdist,我尝试使用distances = pdist(points(:,1:3));和distances = pdist(X(:,:,1:3));计算每个点之间的欧几里德距离,但两者都只是返回一个空矩阵。
有人知道如何使用pdist来计算这些距离吗?它应该返回3个距离,而不是0,但我肯定做错了什么。
顺便说一句。这个问题是问题的后续问题。起初,我在评论中提出了这个问题,但我认为它值得提出一个新的问题,因为它大大扩展了原来的问题。
发布于 2012-02-28 17:34:05
试一试
distances = pdist(squeeze(X(:,:,1:3)));或者squeeze(...)的转置(如果不正确的话)。
https://stackoverflow.com/questions/9486081
复制相似问题