If you actually did want to do it conditionally based on the atom of the bitmask
operand =. 2 2 2 $ 3 2 2 3 2 3 3 2
bitmask =. 2 2 2 $ 1 0 0 1 0 1 1 0
operator =. >:
bitmask (>:@]^:[)"0 operand NB. If you insist on doing atomic conditionals
4 2
2 4
2 4
4 2
operand + bitmask NB. simpler and, to me, closer to a J way of doing it
(suggested by Roger as I was writing!)
4 2
2 4
2 4
4 2
Hope this helps,
Cheers, bob
> On Aug 16, 2020, at 13:11, Raoul Schorer <[email protected]> wrote:
>
> Thanks, works perfectly! Now I'll have a good think and try to understand
> how this works ;-)
>
> On Sun, Aug 16, 2020 at 10:02 PM Roger Hui <[email protected]>
> wrote:
>
>> If "operator" is >: there is a very easy solution:
>>
>> desired_result -: operand + bitmask
>> 1
>>
>> For a general monadic function, you can do as follows:
>>
>> desired_result -: bitmask 0&(] operator)"0 operand
>> 1
>>
>> The basic idea is what the power operator does; m&v or v&m allows you to do
>> the same when the bitmask is an array and not a scalar.
>>
>>
>>
>>
>> On Sun, Aug 16, 2020 at 12:45 PM Raoul Schorer <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> This seems pretty trivial, but I'm stuck on how to perform conditional
>>> application of a verb on a multidimensional array as defined by a bitmask
>>> of the same shape as the operand array. Is there a typical idiom for
>> that?
>>>
>>> For example,
>>>
>>> operand =. 2 2 2 $ 3 2 2 3 2 3 3 2
>>>
>>> bitmask =. 2 2 2 $ 1 0 0 1 0 1 1 0
>>>
>>> operator =. >:
>>>
>>> desired_result =. 2 2 2 $ 4 2 2 4 2 4 4 2
>>>
>>>
>>> I tried looking at the doc, but I wasn't able to formulate a nice
>> solution.
>>>
>>>
>>> Thanks!
>>>
>>> Raoul
>>> ----------------------------------------------------------------------
>>> 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm