【发布时间】:2026-01-31 10:50:01
【问题描述】:
我有一个 5x100 矩阵,其中每一行代表一个特定点,每一列是该点在 5 维空间中的坐标。这意味着实际上总共有 100 分。
如何计算每个点之间的距离以找到彼此最近的 5 个点?
我已经为二维空间做到了这一点
dist=sqrt(bsxfun(@minus,o(1,:),o(1,:)').^2+bsxfun(@minus,o(2,:),o(2,:)').^2)
sorted=sort(dist,1, 'ascend')
fin=sorted(1:5,:)
summ=sum(fin)
[M,I]=min(summ)
sol=dist(:,I)
[Bsort Bidx]=getNElements(sol,5)
oTemp=o(:,[Bidx])
但是当涉及到多维问题时,我找不到有效的解决方案。
谢谢。
【问题讨论】:
-
不要太迂腐,但一个 5x100 矩阵有 5 行 100 列,所以你的意思是 100x5 矩阵或者每列代表 5 个维度中的一个点(并且有 100 个)或者每一行代表 100 个维度中的一个点(并且有 5 个维度)。
-
是的,对不起,你是对的。我正在使用 100x5 矩阵,然后转置它。
标签: arrays matlab optimization multidimensional-array