connectivity_matrix

compas.numerical.connectivity_matrix(edges, rtype='array')[source]

Creates a connectivity matrix from a list of vertex index pairs.

Parameters
  • edges (list) – List of lists [[node_i, node_j], [node_k, node_l]].

  • rtype ({‘array’, ‘csc’, ‘csr’, ‘coo’, ‘list’}) – Format of the result.

Returns

array-like – Constructed connectivity matrix.

Notes

The connectivity matrix encodes how edges in a network are connected together. Each row represents an edge and has 1 and -1 inserted into the columns for the start and end nodes.

\[\mathbf{C}_{ij} = \cases{ -1 & if edge i starts at vertex j \cr +1 & if edge i ends at vertex j \cr 0 & otherwise }\]

A connectivity matrix is generally sparse and will perform superior in numerical calculations as a sparse matrix.

Examples

>>> connectivity_matrix([[0, 1], [0, 2], [0, 3]], rtype='array')
array([[-1.,  1.,  0.,  0.],
       [-1.,  0.,  1.,  0.],
       [-1.,  0.,  0.,  1.]])