scouring until the footnotes, I found 
https://code.jsoftware.com/wiki/Vocabulary/curlyrtu#dyadic

new to me.  actually just found it in "oldvoc" too  
https://www.jsoftware.com/help/dictionary/d530v.htm


replacing all 1s with maximum value in matrix

(>./@:, (I.@:(1&=)@,@])} ]) i.10 10




On Sunday, February 6, 2022, 04:59:06 p.m. EST, Henry Rich 
<[email protected]> wrote: 





No, they're very old and little used.  See the last paragraphs in 
https://code.jsoftware.com/wiki/Vocabulary/curlyrt#Details .

Henry Rich

On 2/6/2022 4:49 PM, 'Pascal Jasmin' via Programming wrote:
> these u} forms are new and never showed up in release notes or nuvoc.
>
> it is not identical to  [`u`]}
>
>
>
>
> On Sunday, February 6, 2022, 03:15:08 p.m. EST, Henry Rich 
> <[email protected]> wrote:
>
>
>
>
>
> Another way to replace the second column with 0:
>
> mat =. 0 (<a:;1)} mat
>
> monad m} is seldom a good solution.  I suggest
>
> mat =. 10 (I.@:(1&=)@,@])} mat  NB. replace 1 values with 10
>
> mat =. _ (I.@:(0 = 5 | ,@]))} mat  NB. replace multiples of 5 with _
>
> for these unusual cases.
>
>
> Operations on rows/columns do not have a special notation.  You must
> extract the row/col, operate on it, and replace it.  Use v0`v1`v2} to
> combine these actions:
>
> mat =. 1 (+ {."1)`((<a:;0)"_)`]} mat  NB. add 1 to col 0, replace in col 0
>
> mat =. 1 (+ 3&{)`(3:)`]}  NB. add 1 to row 3
>
> For more complex stuff you need the details of (x m} y) in NuVoc. For
> scatter read where i is a table, each row of which is an index list of a
> desired cell, use
>
> i (<"1@[ { ]) mat
>
> For scatter modify, use
>
> newvalues i} mat  NB. where i has rank > 1, giving the index list of
> each cell to be modified.
>
> Henry Rich
>
>
> On 2/6/2022 2:24 PM, Andrew P wrote:
>> I am trying to learn how to manipulate tables of numbers in J coming from a
>> NumPy/Python background. Assuming *mat* is a 10x10 matrix, that's what I
>> have figured out so far:
>>
>> - Replace values equal to 1 with 10
>> (mat e. 1) } mat ,: 10
>> - Replace all non-multiples of 5 with _
>> (-. 0 = mat |~ 5) } mat ,: _
>> - Multiply each column by its index
>> mat (*" 1) i. 10
>> - Multiply each row by its index
>> mat (*" 0) i. 10
>> - Replace the second column with 0
>> 0 (1) }"1 mat
>> - Replace the second column with 0 (another way)
>> 0 (< (i.10); 1 ) } mat
>> - Take the diagonal of the matrix
>> (<0 1)&|: mat
>>
>> Now, there are some tasks that I can do in NumPy but haven't found how to
>> do in J. For instance:
>> - Add 1 to each value in the first column
>> x[:,1] += 1
>> - Add 1 to each value in the third row
>> x[3,:] += 1
>>
>> In each of those cases, I am selecting the cells by their indexes rather
>> than their values, and am using the existing values to generate the new
>> ones. Is that possible in J?
>>
>> I would also like to figure out how to modify nontrivial sequences of
>> indexes, for instance, diagonals or cells where both the row index and the
>> column index are even numbers. Where should I start if I want to do that
>> kind of thing?
>>
>> Any suggestion would be highly appreciated.
>>
>>
>> Andrew
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>


-- 
This email has been checked for viruses by AVG.
https://www.avg.com

----------------------------------------------------------------------
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