正态分布生成随机数matlab代码
时间: 2023-10-14 13:20:04 浏览: 60
你可以使用 `randn` 函数来生成服从正态分布的随机数。这个函数的参数可以是一个标量,表示生成一个随机变量;也可以是一个矩阵,表示生成一个矩阵,其中每个元素都是服从正态分布的随机数。
例如,生成一个标量:
```
x = randn();
```
生成一个 3x3 的矩阵:
```
X = randn(3);
```
如果你需要更加精细的控制,可以使用 `makedist` 函数构造一个正态分布的概率分布对象,然后使用 `random` 方法来生成随机数。例如:
```
pd = makedist('Normal');
x = random(pd);
```
相关问题
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生成服从截断正态分布的随机数
可以使用 MATLAB 中的 `truncnormrnd` 函数来生成服从截断正态分布的随机数。该函数需要指定分布参数和截止点。例如,以下代码将生成一个均值为 2、标准差为 0.5 的正态分布随机数,其值范围限制在 1 和 3 之间:
```
mu = 2;
sigma = 0.5;
a = 1;
b = 3;
r = truncnormrnd((a-mu)/sigma, (b-mu)/sigma, mu, sigma, a, b);
```
其中 `(a-mu)/sigma` 和 `(b-mu)/sigma` 分别是分布的下限和上限在标准正态分布上的分值,`mu` 和 `sigma` 是正态分布的均值和标准差,`a` 和 `b` 是截止点。函数返回的 `r` 将是一个服从截断正态分布的随机数。