# inv is the same as #^:_1 (using the power conjunction). A list of default inverses can be found at http://www.jsoftware.com/help/dictionary/d202n.htm
#^:_1 is listed under point 6. Kind regards, Jan-Pieter 2014-09-11 13:04 GMT+02:00 Sebastian <[email protected]>: > Hi Raul and Dan, > > Many thanks for your great help! :) > > I found # as copy in the j vocabulary now, but I cannot find #inv. Where I > have to search? > > Sebastian > > ------ Originalnachricht ------ > Von: "Raul Miller" <[email protected]> > An: "Programming forum" <[email protected]> > Gesendet: 11.09.2014 12:58:37 > Betreff: Re: [Jprogramming] Extend/reduce matrix dimensions > > >> Here's an example of how I frequently use non-truth-valued # >> >> 9!:7]9 1 1#'+|-' >> >> Thanks, >> >> -- >> Raul >> >> On Thu, Sep 11, 2014 at 6:49 AM, Dan Bron <[email protected]> wrote: >> >>> Note also that you can use plain, uninverted # to expand arguments: >>> >>> 1 1j1 1 (#!.1) 3 3 $ 0 >>> 0 0 0 >>> 0 0 0 >>> 1 1 1 >>> 0 0 0 >>> 1 1j1 1 (#!.1"1) 3 3 $ 0 >>> 0 0 1 0 >>> 0 0 1 0 >>> 0 0 1 0 >>> >>> >>> Which approach you pick often depends on whether it's easier for you to >>> express your expansion vector with length N (complex numbers) or N+1 >>> (boolean numbers). >>> >>> -Dan >>> >>> This is worth remembering as well, though I rarely see it used: >>> >>> 1 2 1 # i. 3 3 >>> 0 1 2 >>> 3 4 5 >>> 3 4 5 >>> 6 7 8 >>> >>> Please excuse typos; sent from a phone. >>> >>> > On Sep 11, 2014, at 5:32 AM, Raul Miller <[email protected]> >>> wrote: >>> > >>> > Here are some perhaps relevant examples: >>> > >>> > 1 1 0 1 #inv (3 3$ 0) >>> > 0 0 0 >>> > 0 0 0 >>> > 0 0 0 >>> > 0 0 0 >>> > 1 1 0 1 #inv!.1 (3 3$ 0) >>> > 0 0 0 >>> > 0 0 0 >>> > 1 1 1 >>> > 0 0 0 >>> > 1 1 0 1 #inv!.1"1 (3 3$ 0) >>> > 0 0 1 0 >>> > 0 0 1 0 >>> > 0 0 1 0 >>> > 1 1 0 1 #inv!.1"1 (1 1 0 1) #inv!.1 (3 3$ 0) >>> > 0 0 1 0 >>> > 0 0 1 0 >>> > 1 1 1 1 >>> > 0 0 1 0 >>> > 1 1 0 1 # 1 1 0 1 #inv!.1"1 (1 1 0 1) #inv!.1 (3 3$ 0) >>> > 0 0 1 0 >>> > 0 0 1 0 >>> > 0 0 1 0 >>> > 1 1 0 1 #("1) 1 1 0 1 # 1 1 0 1 #inv!.1"1 (1 1 0 1) #inv!.1 (3 3$ 0) >>> > 0 0 0 >>> > 0 0 0 >>> > 0 0 0 >>> > (i.3) 2} 1 1 0 1 #inv (3 3$0) >>> > 0 0 0 >>> > 0 0 0 >>> > 0 1 2 >>> > 0 0 0 >>> > (i.4) 2}"0 1 (1 1 0 1) #inv"1 (i.3) 2} 1 1 0 1 #inv (3 3$0) >>> > 0 0 0 0 >>> > 0 0 1 0 >>> > 0 1 2 2 >>> > 0 0 3 0 >>> > (i.4) 2}"0 1 (1 1 0 1) #inv"1 (0 1 3) 2} 1 1 0 1 #inv (3 3$0) >>> > 0 0 0 0 >>> > 0 0 1 0 >>> > 0 1 2 3 >>> > 0 0 3 0 >>> > >>> > The whole #inv thing is a bit quirky but was quite deliberate. This >>> was a >>> > primitive in APL, but the syntax was ... strange. Rather than trying >>> to >>> > find a special symbol for this operation, Iverson put it on #inv >>> (since - >>> > logically speaking - it's the inverse of #). >>> > >>> > Thanks, >>> > >>> > -- >>> > Raul >>> > >>> > >>> >> On Thu, Sep 11, 2014 at 5:21 AM, Sebastian <[email protected]> >>> wrote: >>> >> >>> >> Hi, >>> >> >>> >> I know the verbs , ,. ,: to add rows, columns and dimensions to >>> matrices. >>> >> It is easy to add these to begin or the end of the corrosponding >>> dimension, >>> >> but what is to do, if I want to add one row/column in the middle of a >>> >> matrix? Is the only way to slice the matrix in two pieces and join >>> them >>> >> with the new row/column? >>> >> >>> >> A few examples: >>> >> >>> >> Initial situation: >>> >> >>> >> 3 3 $ 0 >>> >> 0 0 0 >>> >> >>> >> 0 0 0 >>> >> >>> >> 0 0 0 >>> >> >>> >> >>> >> add column somewhere to the middle: >>> >> >>> >> 0 0 1 0 >>> >> >>> >> 0 0 1 0 >>> >> >>> >> 0 0 1 0 >>> >> >>> >> >>> >> >>> >> add row somewhere to the middle: >>> >> >>> >> 0 0 1 0 >>> >> >>> >> 0 0 1 0 >>> >> >>> >> 1 1 1 1 >>> >> >>> >> 0 0 1 0 >>> >> >>> >> >>> >> remove the added column: >>> >> >>> >> 0 0 0 >>> >> >>> >> 0 0 0 >>> >> >>> >> 1 1 1 >>> >> >>> >> 0 0 0 >>> >> >>> >> >>> >> >>> >> and the row: >>> >> >>> >> >>> >> >>> >> 0 0 0 >>> >> >>> >> 0 0 0 >>> >> >>> >> 0 0 0 >>> >> >>> >> >>> >> >>> >> Can anyone help me with this? >>> >> >>> >> >>> >> >>> >> Regards >>> >> >>> >> Sebastian >>> >> >>> ---------------------------------------------------------------------- >>> >> 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 > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
