Implementação bsxfun na multiplicação de matrizes

Como sempre tentando aprender mais com você, esperava receber ajuda com o código a seguir.

Eu preciso realizar o seguinte:

1) Eu tenho um vetor:

x = [1 2 3 4 5 6 7 8 9 10 11 12]

2) e uma matriz:

A =[11    14    1
    5     8    18
    10    8    19
    13    20   16]

Eu preciso ser capaz de multiplicareach valor dex comevery valor deA, isso significa:

new_matrix = [1* A
              2* A
              3* A
               ...
              12* A]

Isso vai me dar issonew_matrix de tamanho(12*m x n) assumindoA (mxn). E neste caso(12*4x3)

Como posso fazer isso usandobsxfun do Matlab? e, esse método seria mais rápido que umfor-loop?

Em relação ao meufor-loop, Também preciso de ajuda aqui ... Não consigo armazenar cada"new_matrix" como o loop é executado :(

for i=x
new_matrix = A.*x(i)
end

Desde já, obrigado!!

EDIT: Após as soluções dadas

Primeira solução

clear all
clc
x=1:0.1:50;
A = rand(1000,1000);
tic
val = bsxfun(@times,A,permute(x,[3 1 2]));
out = reshape(permute(val,[1 3 2]),size(val,1)*size(val,3),[]);
toc

Resultado:

Elapsed time is 7.597939 seconds.

Segunda solução

clear all
clc
x=1:0.1:50;
A = rand(1000,1000);
tic
Ps = kron(x.',A);
toc

Resultado:

Elapsed time is 48.445417 seconds.

questionAnswers(5)

yourAnswerToTheQuestion