Somehow I overlooked this before I replied. (Oops.) Dan nailed it. I can't think of anything useful to add here, except emphasis.
Thanks, -- Raul On Sat, May 31, 2014 at 11:35 AM, Dan Bron <[email protected]> wrote: > mdI0 =: 4 $. $. > mdI1 =: $ #: I.@:, > > arr =: 3 3 $ 1 0 0 0 1 0 0 0 1 > > mdI0 arr > 0 0 > 1 1 > 2 2 > mdI1 arr > 0 0 > 1 1 > 2 2 > > > The reason this isn't perfectly straightforward in J is that we tend to > treat items of an array as equals; peers; and so it's unusual to pick apart > their members from above. > > Put another quay, usually we delegate the management of an item's members > to that item itself (if that makes sense to you). Anyway, that's what the > ravel in mdI1 is expressing. > > The sparse matrix trick is just pressing a feature of $. into a novel use > (I believe I picked up it up for the first time from Roger, or maybe Kirk > Iverson, but it had been floating around a while before I ever saw it). > > -Dan > > > Sent from my iPhone > Th > > On May 31, 2014, at 9:57 AM, Jon Hough <[email protected]> wrote: > > > > Probably a very simple question. For a single dimension array I can do > > I. 1 0 1 1 1 0 0 0 1 0 1 > > 0 2 3 4 8 10 > > to get the nonzero indices. > > But I am not sure how to do this for a larger dimension. i.e. get the > (i,j) or (i,j,k) index of nonzero elements. > > e.g. for this matrix: > > arr =. 3 3 $ 1 0 0 0 1 0 0 0 1 > > I. doesn't work because it only gives me the ith value of the position > of the nonzero elements. > > Any help appreciated. > > Regards. > > ---------------------------------------------------------------------- > > 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
