[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Use of bsxfun
From: |
Juan Pablo Carbajal |
Subject: |
Re: Use of bsxfun |
Date: |
Thu, 22 Sep 2011 14:30:31 +0200 |
On Thu, Sep 22, 2011 at 2:18 PM, Bård Skaflestad
<address@hidden> wrote:
> On Thu, 2011-09-22 at 10:00 +0200, Juan Pablo Carbajal wrote:
>> Not long ago JordiGH show me how to exploit the use of bsxfun. However
>> I am having troubles using it
>> Shouldn't the output of this call
>>
>> > bsxfun (@ (x,y) x * y, [1 -1; 2 -2], [6 6; 3 3])
>>
>> be [6 -6; 6 -6] and not [3 3; 6 6]? (The latter is what I get)
>
> Your example demonstrates a slight deficiency in the BSXFUN interface.
> To quote from the help text (in Octave 3.2.3, it may have changed in
> later releases):
>
> Loadable Function: bsxfun (F, A, B)
> Applies a binary function F element-wise to two matrix arguments
> A and B. ...
>
> In this respect, your expectation ([6, -6; 6, -6]) is reasonable.
> However, as the inputs 'A' and 'B' are (square) matrices, you are
> effectively calling
>
> bsxfun(@mtimes, A, B)
>
> which reduces to 'A * B' (i.e., ordinary matrix multiplication). If you
> want to apply element-by-element multiplication, you should be using
> 'array multiply', i.e., the @times function or spelled equivalently
>
> @(x,y) x.*y
>
> I can't really decide if calling BSXFUN with @MTIMES should be an error
> or not. There are good arguments for both sides.
>
>
> Sincerely,
> --
> Bård Skaflestad <address@hidden>
> SINTEF ICT, Applied Mathematics
>
>
Thank you very much Bárd,
I think it would be a good idea to put this example in the help text.
It is a built-in function so I cannot do it. Who should I contact?
--
M. Sc. Juan Pablo Carbajal
-----
PhD Student
University of Zürich
http://ailab.ifi.uzh.ch/carbajal/