Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Multiplying each colum of my matrix by a constant
Replies: 13   Last Post: Jun 15, 2013 3:54 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
dpb

Posts: 8,110
Registered: 6/7/07
Re: Multiplying each colum of my matrix by a constant
Posted: Jun 12, 2013 10:13 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

On 6/11/2013 6:49 PM, dpb wrote:
> On 6/11/2013 6:00 PM, Wanderson wrote:
>> dpb <none@non.net> wrote in message <kp89gu$ooe$1@speranza.aioe.org>...
> ...
>

>>> If you need speed, the straight-ahead loop is probably as good as
>>> you're going to do w/o a specialized mex function. (I believe there
>>> may be some submissions on File Exchange that do, in fact, promise
>>> better performance than bsxfun iirc)
>>>
>>> --

>>
>> hehe, my problem is that I am doing a program that evaluates some double
>> integrals, calculate FFT and whanever, but I have a NECESSARY big 'FOR
>> LOOP' inside my program to store each value of these integrals in the
>> right place. And I didn't want to use another loop inside my huge loop
>> rsrsrs.

>
> For 3x3 you can always try the explicit repmat() route, too for
> comparative timings...
>
> m.*repmat(v,size(m,1),1)
>
> And, of course, if you're lucky enough that the v is a constant you
> could obviously save it since memory isn't going to be an issue.
>
> bsxfun() is essentially syntactic candy to save explicitly writing such
> as the above but is basically all it is. Of course, it has the overhead
> of processing inputs and all that. I've not tested but I'd suspect the
> time differential would drop pretty quickly w/ size of the arrays as
> compared to other implementation choices.
>


BTW...

If the object is speed in an inner loop, then for the 3x3 case the
original version of writing out the three explicit multiplies may well
be the most efficacious route. For higher dimensions it gets klunky
certainly but for as few as three it's not so bad.

--



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.