MATLAB: Multiply two series of vector in loops

loopsvectors

Hello, I have 1485 versions of a vector (41) so a matrix of 1485×41 and I have two matrix like this, so MA=1485×41 and MB=1485×41
I would like to multiply all the vectors (41) possibility to get a final Matrix of 2205225×41. I tried with loops but failed.
Here is my code:
% MA=1485×41 and MB=1485×41
vectorA=cell(size(MA,1),1); %index vector in a cell array
vectorB=cell(size(MB,1),1); %index vector in a cell array
solution=nan(length(MA(:,1)).*length(MB(:,1)), length(t)); %t=41 here is the final matrix that I would need
for i =1 : size(chemACIm,1)
for j=1:size(chemBCIm,1)
vectorA{i}=MA(i,:);
vectorB{j}=MB(j,:);
output(i, j, :)=MA(i,:).*MB(j,:); %
end
end
Thank you in advance for your answer,
Sylvain

Best Answer

Assuming R2016b or later:
result = MA .* permute(MB, [3, 2, 1]);
will give you a 3D matrix, where result(i, :, j) is MA(i, :) .* MB(j, :)
I would suggest you keep the result like that, but if you really want a 2D matrix, then:
result = reshape(permute(MA .* permute(MB, [3, 2, 1]), [1, 3, 2]), [], size(MA, 2))