Assume I have the following matrix: mat = [1 1 0 0 0 ; 1 1 0 0 0 ; 0 0 0 0 1 ; 0 0 0 1 1]
Considering as a "component" a group of neighbour elements that have value '1', how to identify that this matrix has 2 components and which vertices compose each one? For the matrix *mat* above I would like to find the following result: Component 1 is composed by the following elements of the matrix (row,column): (1,1) (1,2) (2,1) (2,2) Component 2 is composed by the following elements: (3,5) (4,4) (4,5) I can use Graph algorithms like this <http://graphsjl-docs.readthedocs.org/en/latest/algorithms.html#connected-components> to identify components in square matrices. However such algorithms can not be used for non-square matrices like the one I present here. Any idea will be much appreciated. I am open if your suggestion involves the use of a Python library + PyCall for example. Although I would prefer to use a pure Julia solution. Regards Charles P.S.: Just asked the same question in Stackoverflow: https://stackoverflow.com/questions/32772190/how-to-find-connected-components-in-a-matrix-using-julia -- Um axé! :) -- Charles Novaes de Santana, PhD http://www.imedea.uib-csic.es/~charles