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: subtract vector from matrix rows without for loop
Replies: 6   Last Post: Dec 6, 2012 11:49 PM

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,996
Registered: 11/28/09
Re: subtract vector from matrix rows without for loop
Posted: Nov 29, 2009 12:10 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"Matt J " <mattjacREMOVE@THISieee.spam> wrote in message <hesupb$i07$1@fred.mathworks.com>...

> For loops may be optimal (looping along the smallest dimension of the matrix), when the smallest dimension is small enough.
==================

In fact, for loops _are_ optimal, in terms of memory consumption, if you want to the new matrix to overwrite the old matrix. For example

M=bsxfun(@minus,M,vector);

will cause bsxfun() to generate an intermediate matrix the same size as M and then overwrite M with this intermediate matrix . Conversely, the following for-loop will allocate no new memory:

for ii=1:n
M(:,ii)=M(:,ii)-vector;
end



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.