Yes, it is my post in Stackoverflow :)

Thanks,

Charles

On 25 September 2015 at 10:46, Tim Holy <tim.h...@gmail.com> wrote:

> See also http://stackoverflow.com/a/32778103/1939814
>
> --Tim
>
> On Friday, September 25, 2015 09:55:31 AM Charles Novaes de Santana wrote:
> > Hi Valentin,
> >
> > Thanks a lot for your suggestion! It makes exactly what I need, with a
> > clear code. I still don't know if efficiency will be an issue for my
> > problems, but I hope it won't.
> >
> > Just don't agree with your advice to only post in one place. Is there any
> > special reason for it besides the overlap of users?
> >
> > I see some differences between asking in the mailing-list or in
> > stackoverflow, even if there is an overlap between of users of both
> forums.
> > In stackoverflow there is kind of a competition of the best responses
> that
> > I think is interesting, we can learn a lot from everyone there. And I
> think
> > it is not the focus of this list. Just my opinion.
> >
> > By the way, the final solution for my problem is the following piece of
> > code:
> >
> > using Images
> >
> > function findMat(mat,value)
> >     return(collect(zip(ind2sub(size(mat),find( x -> x == value,
> mat))...)));
> > end
> >
> > mat = [1 1 0 0 0 ; 1 1 0 0 0 ; 0 0 0 0 1 ; 0 0 0 1 1]
> >
> > labels = label_components(mat);
> >
> > for c in 1:maximum(labels)
> >     comp = findMat(labels,c);
> >     println("Component $c is composed by the following elements
> > (row,col)");
> >     println("$comp\n");
> > end
> >
> >
> > Thanks again for your help!
> >
> > Best,
> >
> > Charles
> >
> > On 25 September 2015 at 09:07, Valentin Churavy <v.chur...@gmail.com>
> wrote:
> > > 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-compon
> > >> ents-in-a-matrix-using-julia
> > >>
> > >> --
> > >> Um axé! :)
> > >>
> > >> --
> > >> Charles Novaes de Santana, PhD
> > >> http://www.imedea.uib-csic.es/~charles
>
>


-- 
Um axé! :)

--
Charles Novaes de Santana, PhD
http://www.imedea.uib-csic.es/~charles

Reply via email to