"Alan_Weiss" <email@example.com> wrote in message news:firstname.lastname@example.org... > On 6/11/2013 4:59 PM, Wanderson wrote: >> Hello there, >> >> I'm trouble here, I'm sure that the solution isn't too hard to my >> problem, but I'm really stucked here and I can't see the light in end of >> the tunnel right now. >> >> I have matrix 3x3 and a vector 1x3 and I want to multiply each column of >> my matrix by each element of my vector, for example: >> >> If my matrix 3x3 is called M and my vector v is a 1x3 dimension: >> M(:,1) = M(:,1).*v(1); >> M(:,2) = M(:,2).*v(2); >> M(:,3) = M(:,3).*v(3); >> >> Ofc, I want to avoid use 'for loops'. >> >> Thx. > > If I understand you correctly, this should do what you want: > > M*diag(v)
That works in this 3-by-3 case, but you wouldn't want to do this for a very large matrix M and a correspondingly long v. For that, the FOR loop approach may win out, and it would be up to the OP to determine around what problem sizes it would pay to switch between the two approaches.