Sorry, Viktor, but I don't see your point.
(>:i.8)* 8 8 $ 1j2 # 1
generates an integer array, not a Boolean.
I agree (5&=) yields a boolean, but is it in any way a general-purpose
condition?
You might note that Henry Rich proposed the same solution to LdBeth's
enquiry.
He (HR) might understand what you're driving at!
Cheers,
Mike
On 11/12/2023 17:09, 'Viktor Grigorov' via Programming wrote:
A fully tacit solution would encapsulate the predicate too, here parenthesized
for emphasis:
($ #: [: I. [: (5&=) ,) (>:i.8)* 8 8 $ 1j2 # 1
4 1
4 4
4 7
Dec 11, 2023, 17:01 byprogramm...@jsoftware.com:
I see Pablo has just replied, but here's a similar/same approach, as a tacit
expression:
b =. 0=3|i.2 3 4
($#:I.@,) b
0 0 0
0 0 3
0 1 2
0 2 1
1 0 0
1 0 3
1 1 2
1 2 1
Might be of use,
Mike
Sent from my iPad
On 11 Dec 2023, at 10:06, LdBeth<andp...@foxmail.com> wrote:
I've been running to too many situations that I uses 4$.$.y a lot to
get indexes of all non zero elements to an array, I wonder if there
are any alternative ways to do that in J, especially when y is a
boolean array.
Also monadic I. only works for 1D array, while ⍸ from APL works
for higher dimension cases, how to implement this in J?
LdBeth
----------------------------------------------------------------------
For information about J forums seehttp://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums seehttp://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums seehttp://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm