Of course, you can still go by the dot product. Just don't sum:

   a (] . *) |:b
10 14
22 30
36 48
52 68


On Mon, Apr 18, 2016 at 11:49 AM, EelVex <eel...@gmail.com> wrote:

> 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 <
> programm...@jsoftware.com> 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

Reply via email to