find commun neighbor of matrix

2 次查看(过去 30 天)
khaled nouri
khaled nouri 2017-5-30
Hello, I have a graph which is represented by this matrix A =[0 1 0 1; 1 0 0 0; 0 1 0 0; 1 0 1 0;]
i went to search the no nodes of matrix which have a commun neighbor, for exemple node 1 is connected with [2,4] and node 2 is connected with [1, 4] so nodes 1 and 2 have a commun neighbor which is node 4
can you Help me PLEASE? ^-^
  4 个评论
Santhana Raj
Santhana Raj 2017-5-31
If the matrix you have given is a node connectivity matrix, doesn't this has to be symmetric??
Walter Roberson
Walter Roberson 2017-5-31
Not for directed graphs it does not need to be symmetric.
"having a common neighbor" in a directed graph situation does not promise that the nodes are reachable from each other. For example node 4 might have directed links only towards nodes 1 and 2, with there being way to get from node 1 to node 2 by way of node 4.

请先登录,再进行评论。

回答(1 个)

Santhana Raj
Santhana Raj 2017-6-1
From my understanding of nodes,
A =[0 1 0 1; 1 0 0 0; 0 1 0 0; 1 0 1 0;]
h=zeros(4);
for i=1:4
[~,H]=find(A(i,:)==1);
h(i,1:length(H))=H;
end
neigh=[];
for i=1:4
if numel(nonzeros(h(:)==i))>1
neigh=[neigh i];
end
end
this seems to work.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by