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: Temporary output when assigning into slices?
Replies: 10   Last Post: Jan 27, 2013 3:53 AM

Advanced Search

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

Posts: 4,992
Registered: 11/28/09
Re: Temporary output when assigning into slices?
Posted: Jan 23, 2013 4:05 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"Bruno Luong" <b.luong@fogale.findmycountry> wrote in message <kdpg30$6gl$1@newscl01ah.mathworks.com>...
>
> > A(:,1)=B*x;
> >
> > Is this equivalent to
> >
> > z=B*x; %memory allocated here
> > A(:,1)=z;
> >
> > Or, does the output of B*x get directly generated in the memory locations occupied by A(:,1)?

>
> On recent MATLAB versions (2010a?), MATLAB is smart and puts directly the output in-place.

================

OK. That's strangely inconsistent with things I'm seeing, but so be it.





> If the resulting is not in a contiguous memory, similar optimization on memory space will slow down the speed. I suspect that is the main reason why the optimization cannot be carried out in the later example.
===============

Don't you mean, that optimization cannot be carried out in the *latter* example? I can see for example why

A=B(1,idx)*C

might have to extract B(1,idx) to a continguous memory block when C is a matrix. In that case the elements in B(1,idx) will be accessed many times.



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.