Or, perhaps:

   map=. 3 4 $ 1 0 0 1 0 1 1 0 0 0 0 0
   ($ #: I.@,) map
0 0
0 3
1 1
1 2

Thanks,

-- 
Raul

On Tue, Sep 21, 2021 at 5:53 AM Ric Sherlock <[email protected]> wrote:
>
> Some variation on this?
>
>    |:(m,:n) {~"1 |: 4$.$. map
> aA
> aD
> bB
> bC
>
>
>
>
> On Tue, 21 Sep 2021, 21:37 bill lam, <[email protected]> wrote:
>
> > Say I have a boolean matrix
> >    ] map=. 3 4 $ 1 0 0 1 0 1 1 0 0 0 0 0
> > 1 0 0 1
> > 0 1 1 0
> > 0 0 0 0
> >
> > and 2 vectors of dimension equal to the 2 sides of the matrix
> >    m=. 'abc' [ n=. 'ABCD'
> >  I want a cross product for those 1 in the matrix, with result like this
> >    _2 ]\ 'aAaDbBbC'
> > aA
> > aD
> > bB
> > bC
> >
> > Is it possible to do it without explicit loops? The dimension of the matrix
> > can be very large so that generating all cross products then eliminating is
> > not an option.
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to