That said, note that +/"1 does "lose" the last dimension. Thanks,
-- Raul On Thu, Apr 16, 2020 at 5:30 PM Mike Powell <[email protected]> wrote: > > Of course. (A place where J and APL differ.) > Thanks Jan-Pieter. > > Mike > > > On Apr 16, 2020, at 12:00, Jan-Pieter Jacobs <[email protected]> > > wrote: > > > > Actually, the dimension lost is the first, as insert [0] (u/) inserts u > > between the items [1]. > > > > Demonstration: > > > > $ foo =: i. 2 3 4 > > 2 3 4 > > $ +/ foo > > 3 4 > > > > [0]: https://code.jsoftware.com/wiki/Vocabulary/slash > > [1]: https://code.jsoftware.com/wiki/Vocabulary/AET#Item > > > > Cheers, > > > > Jan-Pieter > > > > Op wo 15 apr. 2020 om 20:54 schreef Mike Powell <[email protected]>: > > > >> Thomas, > >> > >> I J there is not really anything for a column vector. If an object, like > >> your rvec, has a single dimension it’s a vector. If it has two dimensions, > >> as does cvec, it’s a matrix. That’s different from most conventional > >> mathematical notation. > >> > >> When you do the summation with +/ you lose a dimension in the result. So a > >> vector sums to a scalar and a matrix (with any number of columns) sums to a > >> vector. The dimension lost is the last. > >> > >> It’s a simple rule that’s consistently applied. So the summation of a rank > >> 5 array is a rank 4 array. (Of course, the sum of a scalar is still just a > >> scalar.) And the same rule applies if the function is multiply rather than > >> add for example. > >> > >> One of the joys of writing in J (or APL or K) is that very often the code > >> you write works for arrays of any rank. > >> > >> Mike > >> > >>> On Apr 15, 2020, at 10:33 AM, Thomas Bulka <[email protected]> > >> wrote: > >>> > >>> Hello everyone, > >>> > >>> I do have some difficulties in understanding a certain behavior. Let's > >> assume, I define the classical mean verb, a row vector and a column vector: > >>> > >>> mean =: +/ % # > >>> rvec =: 1 2 3 > >>> cvec =: 3 1 $ 1 2 3 > >>> > >>> When I apply mean to rvec I get the result 2 (as expected), which > >> happens to be a scalar ($$ mean rvec yields 0). When I apply mean to cvec > >> the result is a vector ($$ mean cvec yields 1). I'd like to understand, why > >> this behavior has been chosen. Do you have any hints for me? > >>> > >>> Regards, > >>> > >>> Thomas > >>> > >>> ---------------------------------------------------------------------- > >>> 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
