Matt J
Posts:
4,992
Registered:
11/28/09


Re: subtract vector from matrix rows without for loop
Posted:
Nov 29, 2009 12:10 AM


"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 forloop will allocate no new memory:
for ii=1:n M(:,ii)=M(:,ii)vector; end

