Melhore a velocidade do NORMRND para uma família de distribuições no MATLAB

Então, estou procurando uma maneira de acelerar meu código. Eu tenho um grande vetor de distribuições normais (ou seja, um vetor de médias e desvios padrão) do qual preciso gerar números aleatórios. Um exemplo genérico do meu código é semelhante a este:

tic

N=1e6;
mu = rand(N,1);
sigma = rand(N,1);

temp = zeros(length(mu),1);

for i = 1:length(mu)
     temp(i) = normrnd(mu(i),sigma(i));
end

toc

Este código em sua forma atual tem um tempo decorrido de:

Elapsed time is 12.281509 seconds.

Normalmente, eu tento vetorizar a maioria dos meus comandos computacionalmente intensivos, mas agora estou surpreso em saber como posso fazer isso funcionar mais rápido. Terei que executar essa operação várias vezes sempre que o código for executado, para que quanto mais rápido eu possa melhorá-lo.

Algum de vocês, gênios do MATLAB por aí, pensa em como acelerar isso?

Obrigado! John

questionAnswers(1)

yourAnswerToTheQuestion