# Boost NORMRND speed for family of distributions in MATLAB

So I am looking for a way to speed up my code. I have a large vector of normal distributions (i.e. Vector of means and standard deviations) from which I need to generate random numbers. A general example of my code looks like this:

`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`

This code in its current form has an elapsed time:

```
Elapsed time is 12.281509 seconds.
```

I usually try to vectorize most of my computationally intensive commands, but now I'm stumped as to how I can make this run faster. I will perform this operation several times each time the code runs, so the faster I can get it done the better.

Does any of the MATLAB geniuses have any thoughts on how to speed this up?

Thank! John

source to share

Hacked in `normrnd.m`

to get this custom code, which should replicate the functionality described in the issue -

```
N=1e6;
mu = rand(N,1);
sigma = rand(N,1);
temp = randn(size(sigma)).*sigma + mu;
```

On my system, the execution time dropped from `18.946094 seconds`

to `0.037229 seconds`

.

Hope this works for you!

source to share