# dgl.NodeFlow.block_incidence_matrix¶

NodeFlow.block_incidence_matrix(block_id, typestr, ctx)[source]

Return the incidence matrix representation of the block.

An incidence matrix is an n x m sparse matrix, where n is the number of nodes and m is the number of edges. Each nnz value indicating whether the edge is incident to the node or not.

There are two types of an incidence matrix I:

• in:

• I[v, e] = 1 if e is the in-edge of v (or v is the dst node of e);

• I[v, e] = 0 otherwise.

• out:

• I[v, e] = 1 if e is the out-edge of v (or v is the src node of e);

• I[v, e] = 0 otherwise.

“both” isn’t defined in the block of a NodeFlow.

Parameters
• block_id (int) – The specified block to return the incidence matrix.

• typestr (str) – Can be either “in”, “out” or “both”

• ctx (context) – The context of returned incidence matrix.

Returns

• SparseTensor – The incidence matrix.

• Tensor – A index for data shuffling due to sparse format change. Return None if shuffle is not required.