Raul made the point of what shape you want your result to be
(i. 2 4) *"1"1 2 i. 3 4
0 1 4 9
0 5 12 21
0 9 20 33
0 5 12 21
16 25 36 49
32 45 60 77
whether the left item is 1 or 2 rows, the result is a 3d shape.
the "1 1"1 _ adverb also works when x is just a list. (though creates a 2d
result)
----- Original Message -----
From: 'Jon Hough' via Programming <[email protected]>
To: [email protected]
Sent: Monday, April 18, 2016 7:54 PM
Subject: Re: [Jprogramming] Simple scalar multiplication of matrices
Thanks for the responses. It seems ravelling the left argument is the easiest
way to go.
--------------------------------------------
On Tue, 4/19/16, 'Pascal Jasmin' via Programming <[email protected]>
wrote:
Subject: Re: [Jprogramming] Simple scalar multiplication of matrices
To: "[email protected]" <[email protected]>
Date: Tuesday, April 19, 2016, 8:28 AM
there is also the adverb
(no source transforms)
(i.
1 4) *"1 1"1 2 i. 2 4
0 1 4
9
0 5 12 21
(or shorthand)
"1"1 2
----- Original Message -----
From: EelVex <[email protected]>
To: Programming forum <[email protected]>
Sent: Monday, April 18, 2016 4:49 AM
Subject: Re: [Jprogramming] Simple scalar
multiplication of matrices
If you remove the first axis of a you can
multiply-1:
(,a) *"1
b
10 22 36 52
14 30 48 68
Do you really need a to be 1xn
?
On Mon,
Apr 18, 2016 at 11:41 AM, 'Jon Hough' via
Programming <
[email protected]>
wrote:
> I am sure there
is a simple answer to this, but I would like to know it.
>
> Say I have two
matrices:
>
> a =: 1 4
$ 1 2 3 4
> b =: 2 4 $ 10 11 12 13 14 15
16 17
>
> and I want
to multiply a's single row element-wise with each of
b's rows.
> Not matrix
multiplication, so the resulting matrix should have
dimensions 2
> 4, same as b.
>
> Obviously a * b gives
a length error,
>
> So
does a *"1 1 b
>
> My best solution is pretty ugly,
>
> (($b)$,a ) * b
>
> i.e. reshape a so it
has the same number of rows as b, which duplicates
> the items of its top row into the second
row and then multiply row-wise.
>
> Is there a better way?
> Incidentally, isn't a*1 1 b a
row-to-row multiplication. I thought this
> would have worked, and am slightly
confused why it doesn't.
>
----------------------------------------------------------------------
> 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