MATLAB: Multiply a set of matrices (3D array) by a vector of values

indexing

I have a 3D array (a) such that size(a) = [n,n,m]. I also have a vector (v) of length(v) = m. I would like to multiply each element from my vector with each 2D matrix in my array. Is there a way to do this without a for loop. To clarify, using a for loop it would be:
for i = 1:m
b(:,:,i) = v(i)*a(:,:,i);
end

Best Answer

% -------Example-----------------
M=randi(3,3,2,4)
v=1:4
%--------------------------------
bsxfun(@times,M,reshape(v,1,1,4))