生成服从正态分布的随机数

1.matlab中normrnd函数
功能:生成服从正态分布的随机数

语法:

R=normrnd(MU,SIGMA)
R=normrnd(MU,SIGMA,m)
R=normrnd(MU,SIGMA,m,n)

说 明:

  • R=normrnd(MU,SIGMA):生成服从正态分布(MU参数代表均值,SIGMA参数代表标准差)的随机数。输入的向量或矩阵MU和SIGMA必须形式相同,输出R也和它们形式相同。标量输入将被扩展成和其它输入具有相同维数的矩阵。
  • R=norrmrnd(MU,SIGMA,m):生成服从正态分布(MU参数代表均值,SIGMA参数代表标准差)的
    随机数矩阵,矩阵的形式由m定义。m是一个1×2向量,其中的两个元素分别代表返回值R中行与列的维数。
  • R=normrnd(MU,SIGMA,m,n): 生成m×n形式的正态分布的随机数矩阵。

生成服从正态分布的随机数
2.python中np.random.multivariate_normal
定义: def multivariate_normal(mean, cov, size=None, check_valid=None, tol=None)
  • mean:多元正态分布的维度;n维分布的均值;
  • cov:多元正态分布的协方差矩阵,注意:协方差矩阵必须是对称的且需为半正定矩阵(形状为(N,N)的二维数组);
  • size:指定生成的正态分布矩阵的维度(例:若size=(1, 1, 2),则输出的矩阵的shape即形状为
    1X1X2XN(N为mean的长度))。
  • check_valid:这个参数用于决定当cov即协方差矩阵不是半正定矩阵时程序的处理方式,它一共有三个值:warn,raise以及ignore( igore:忽略协方差矩阵不是半正定矩阵的问题,生成数组。warn:输出警告,但是还是会生成数组。raise:程序报错,且不会生成数组)。
  • tol:检查协方差矩阵奇异值时的公差,float类型。
import numpy as np

x = np.random.multivariate_normal(10, 2, (2, 3), 'raise')

3.python创建正态分布数
(1)生成随机正态分布数组

np.random.normal(loc =0.0 , scale= 1.0,size = (5,4))
  • loc:float类型,表示此正态分布的均值(对应整个分布中心);
  • scale:float类型,表示此正态分布的标准差(对应于分布的密度,scale越大越矮胖,数据越分散;scale越小越瘦高,数据越集中)
  • size:输出的shape,size=(k,m,n)
    表示输出k维,m行,n列的数,默认为None,只输出一个值,size=100,表示输出100个值
    (2)生成标准正态分布数组
np.random.standard_normal(size = (5,4))

下面是等价的语句:
python中:

print(np.random.normal(loc =0.0 , scale= 1.0,size = (2,1)))
print(np.random.standard_normal(size = (2,1)))

matlab中: normrnd(0,1,2,1)

Original: https://blog.csdn.net/qq_32649321/article/details/122946621
Author: RS&Hydrology
Title: 生成服从正态分布的随机数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/623023/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球