gpt4 book ai didi

matlab - matlab中给出的欧氏距离矩阵的邻接矩阵

转载 作者:行者123 更新时间:2023-12-05 08:00:07 25 4
gpt4 key购买 nike

我想知道如何从我之前创建的欧氏距离矩阵创建邻接矩阵。例如:

 Edm =  [0       7.7466  7.7534  0       3.7296  2.8171;
7.7466 0 0.0068 7.7466 4.0170 4.9295;
7.7534 0.0068 0 7.7534 4.0239 4.9364;
0 7.7466 7.7534 0 3.7296 2.8171;
3.7296 4.0170 4.0239 3.7296 0 0.9125;
2.8171 4.9295 4.9364 2.8171 0.9125 0 ]

Edm 根据彼此之间的欧氏距离显示连通性节点 1-6。对角线必须为 0,因为与同一节点的距离为零。

有没有办法让我从上面的 Edm 中检索具有 2 个最近邻的邻接矩阵?

最佳答案

我没有得到 Mohsen 的答案,所以这是我的(更麻烦的)建议:

sz = size(Edm,1);
n = 2; % Number of desired smallest distances
E = Edm + diag(Inf(1,sz));
[~, mm] = sort(E);

mmi = mm(1:n,:)'; % n smallest distances (in your example, n = 2)

Edm_idx = sparse(mmi(:),repmat(1:sz,1,n),1,sz,sz);

Adj = full(Edm.*Edm_idx);

并不是说 Edm 中的非对角线值是 0。如果这些假设是 Inf,(如未连接),您也必须考虑到这一点。

关于matlab - matlab中给出的欧氏距离矩阵的邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19347438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com