Реализация bsxfun в умножении матриц

Как всегда, пытаясь узнать больше от вас, я надеялся, что смогу получить некоторую помощь со следующим кодом.

Мне нужно сделать следующее:

1) у меня есть вектор:

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

2) и матрица:

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

Мне нужно уметь размножатьсяeach значение отx сevery ценностьA, это означает:

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

Это даст мне этоnew_matrix размера(12*m x n) при условии,A (mxn), И в этом случае(12*4x3)

Как я могу сделать это с помощьюbsxfun из матлаба? и будет ли этот метод быстрее, чемfor-loop?

Что касается моегоfor-loopМне нужна помощь здесь ... Я не могу хранить каждый"new_matrix" как работает цикл :(

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

Заранее спасибо!!

РЕДАКТИРОВАТЬ: после решения, где дано

Первое решение

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

Выход:

Elapsed time is 7.597939 seconds.

Второе решение

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

Выход:

Elapsed time is 48.445417 seconds.

Ответы на вопрос(5)

Ваш ответ на вопрос