Hej Charles, in the future please only post in one place. A lot of the people who answer on SO are also here.
You can use the label_components function in Images.jl https://github.com/timholy/Images.jl/blob/master/doc/function_reference.md#label_components To get the the list of coordinates for each components you then would have to do something along the line of. for c in 1:maximum(labels) find(x-> x == c, labels) end Not very efficient but that should get you started. On Friday, 25 September 2015 07:56:20 UTC+9, Charles Santana wrote: > > 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 >