图表超出事件矩阵Matlab

时间:2016-03-25 10:00:20

标签: matlab graph-theory

我需要的是完全相反的;

I = incidence(G).

这里我已经有一个关联矩阵I,有没有办法获得G,这是一个包含节点和边的图?

1 个答案:

答案 0 :(得分:3)

我没有找到Matlab方法,但我开发的以下方法非常简单:

% Define your test graph
s = [1 1 1 2 3 3];
t = [2 3 4 3 4 5];
G = graph(s,t);
I = incidence(G);

% Find the source nodes from incidence matrix
[s2,~] = find( I == -1 )

% Find the target nodes from incidence matrix
[t2,~] = find( I == 1 )

% Generate graph from source and target nodes
G2 = graph( s2, t2 );
figure;
subplot(211);
plot( G );
subplot(212);
plot( G2 );

% Check
I2 = incidence(G2);

assert( isequal(I, I2), 'Did not generate same incidence matrices' );

所有工作都是使用find和信息:

完成的
  

I =入射(G)返回图G的稀疏关联矩阵。如果s   和t是第j个边缘的源节点和目标节点的节点ID   在G中,然后I(s,j)= -1并且I(t,j)= 1.也就是说,I的每一列   表示G中单个边的源节点和目标节点。