# How to generate bivariate random normally distributed 3d array?

2 views (last 30 days)
Nainsi Gupta on 31 May 2023
Commented: Nainsi Gupta on 1 Jun 2023
mu= [0 0]
mu = 1×2
0 0
sigma= [1 0.25; .25 1]
sigma = 2×2
1.0000 0.2500 0.2500 1.0000
mvnrnd(mu,sigma,100)
ans = 100×2
0.7082 0.2195 -2.3244 -1.9734 -1.8774 0.1327 -0.2237 1.3953 -0.7603 0.4547 -1.2340 0.0526 0.8824 0.1801 0.1022 0.6385 -1.9730 -1.0128 1.3997 0.4401
I want to generate a 3-by-2-by-100 array which is normally distributed with given mu and sigma. Please help me how can I do this?
Torsten on 31 May 2023
Edited: Torsten on 31 May 2023
Yes, but don't you agree that for the k-dimensional case (see below), it's much more handy for access to have the realizations in a (n x k) matrix instead of a whatever matrix ?

John D'Errico on 31 May 2023
Edited: John D'Errico on 31 May 2023
Um, trivial?
You apparently want to generate 300 samples of a bivariate normal. So generate them as a 300x2 array, Then reshape and permute them into the desired 3x2x100 array.
mu= [0 0];
sigma= [1 0.25; .25 1];
X = mvnrnd(mu,sigma,300);
X = reshape(X,[3,100,2]);
X = permute(X,[1 3 2]);
size(X)
ans = 1×3
3 2 100
Nainsi Gupta on 1 Jun 2023
Thank you so much for the explaination

### Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!