matlab生成随机数正态分布
时间: 2023-10-30 15:00:36 浏览: 378
在MATLAB中,可以使用randn函数来生成服从标准正态(Gauss)分布的随机数。该函数的语法为randn(m, n, p),其中m、n为产生矩阵的行数和列数,p为产生矩阵的个数。生成的矩阵中的每个元素均为服从N(0, 1)的标准正态分布的元素。例如,要生成一个100x1的服从标准正态分布的随机数矩阵可以使用A = randn(100, 1)。通过绘制图像,可以看到随机数服从均值为0,方差为1的标准正态分布。要生成服从N(μ, σ^2)的正态分布随机数,可以使用变换公式σX+μ,其中X为服从N(0, 1)的随机数。例如,要生成服从N(1, 2)的随机数可以使用A = sqrt(2) * randn(100, 1)。其他类似的正态分布随机数生成也可以通过相应的变换得到。
相关问题
matlab对数正态分布怎么生成随机数
在MATLAB中,可以使用lognrnd函数生成对数正态分布的随机数。lognrnd函数的语法如下:
X = lognrnd(mu, sigma, m, n)
其中,mu和sigma是对数正态分布的参数,m和n是生成随机数的维度。
具体来说,mu是对数正态分布的均值的对数,sigma是对数正态分布的标准差的对数。生成的随机数X将服从对数正态分布。
下面是一个示例:
```matlab
mu = 1; % 对数正态分布的均值的对数
sigma = 0.5; % 对数正态分布的标准差的对数
m = 100; % 生成100个随机数
n = 1; % 维度为1
X = lognrnd(mu, sigma, m, n); % 生成对数正态分布的随机数
% 打印前10个随机数
disp(X(1:10));
```
这段代码将生成一个维度为100x1的对数正态分布的随机数,并打印出前10个随机数。
正态分布生成随机数matlab代码
你可以使用 `randn` 函数来生成服从正态分布的随机数。这个函数的参数可以是一个标量,表示生成一个随机变量;也可以是一个矩阵,表示生成一个矩阵,其中每个元素都是服从正态分布的随机数。
例如,生成一个标量:
```
x = randn();
```
生成一个 3x3 的矩阵:
```
X = randn(3);
```
如果你需要更加精细的控制,可以使用 `makedist` 函数构造一个正态分布的概率分布对象,然后使用 `random` 方法来生成随机数。例如:
```
pd = makedist('Normal');
x = random(pd);
```