MATLAB: How to vectorize the for loop

for loopvectorization

Dear all,
I am trying to vectorize the following statement:
u=zeros(n,2,2);
v=zeros(N);
w=zeros(n,2,2);
for j=1:n
u(j,1,1)=v(j)*w(j,1,1);
end
The vectorized version:
j=1:n
u(j,1,1)=v(j)*w(j,1,1);
But I got the error message:
Inner matrix dimensions must agree
because N>n.
Would you please suggest a way to resolve this problem? Thank you.

Best Answer

u(j,1,1) = v(j) .* w(j,1,1);
The .* means element-by-element multiplication; otherwise, it attempts matrix multiplication.