主要内容

randn

正态分布随机数

描述

X = randn返回从标准正态分布中抽取的随机标量。

例子

X = randn(n返回一个n——- - - - - -n正态分布随机数矩阵。

例子

X = randn(sz1,…,szN返回一个sz1——-…——-szN数组中的随机数sz1,…,szN指出每个维度的大小。例如,randn(3、4)返回一个3 × 4矩阵。

例子

X = randn(深圳返回一个大小为vector的随机数数组深圳定义了大小(X).例如,randn (4 [3])返回一个3 × 4矩阵。

例子

X = randn(___typename返回数据类型的随机数数组typename.的typename输入可以是“单身”“替身”.您可以使用前面语法中的任何输入参数。

例子

X = randn(___“喜欢”,p返回一个随机数数组,如p;也就是说,具有相同的数据类型和复杂性(真实或复杂)p.你可以指定typename“喜欢”,但不是两者都有。

X = randn(年代___从随机数流生成数字年代而不是默认的全局流。要创建流,使用RandStream.你可以指定年代后面跟着以前语法中的任何输入参数组合。

例子

全部折叠

生成正态分布随机数的5 × 5矩阵。

R = randn(5)
r =5×50.5377 -1.3077 -1.3499 -0.2050 0.6715 1.8339 -0.4336 3.0349 -0.1241 -1.2075 -2.2588 0.3426 0.7254 1.4897 0.7172 0.8622 3.5784 -0.0631 1.4090 1.6302 0.3188 2.7694 0.7147 1.4172 0.4889

用指定的平均向量和协方差矩阵从二元正态分布中生成值。

Mu = [1 2];σ = [1 0.5;0.5 - 2);R = chol(sigma);z = repmat(mu,10,1) + randn(10,2)*R
z =10×21.5377 0.4831 2.8339 6.9318 -1.2588 1.8302 1.8622 2.3477 1.3188 3.1049 -0.3077 1.0750 0.5664 1.6190 1.3426 4.1420 4.5784 5.6532 3.7694 5.2595

保存随机数生成器的当前状态,并创建一个1 × 5的随机数向量。

S = rng;R = randn(1,5)
r =1×50.5377 1.8339 -2.2588 0.8622 0.3188

将随机数生成器的状态恢复为年代,然后创建一个新的1 × 5的随机数向量。数值与之前相同。

rng(年代);R1 = randn(1,5)
r1 =1×50.5377 1.8339 -2.2588 0.8622 0.3188

创建一个3 × 2 × 3的随机数数组。

X = randn([3,2,3])
X = X(:,:,1) = 0.5377 0.8622 1.8339 0.3188 -2.2588 -1.3077 X(:,:,2) = -0.4336 2.7694 0.3426 -1.3499 3.5784 3.0349 X(:,:,3) = 0.7254 -0.2050 -0.0631 -0.1241 0.7147 1.4897

创建一个1 × 4的随机数向量,其元素是单精度的。

R = randn(1,4,“单身”
r =1x4单行向量0.5377 1.8339 -2.2588 0.8622
类(r)
Ans =“单身”

创建与现有数组大小相同的正态分布随机数矩阵。

A = [3 2;2 1];sz = size(A);X = randn(sz)
X =2×20.5377 -2.2588 1.8339 0.8622

将前两行代码合并为一行是一种常见模式。

X = randn(size(A));

创建一个2乘2的单精度随机数矩阵。

P = single([3 2;2 1]);

创建大小和数据类型相同的随机数数组p

X = randn(size(p),“喜欢”, p)
X =2x2单矩阵0.5377 -2.2588 1.8339 0.8622
类(X)
Ans =“单身”

由标准复数正态分布生成10个随机复数。

A = randn(10,1,“喜欢”1我)
一个=10×1复杂0.3802 + 1.2968i -1.5972 + 0.6096i 0.2254 - 0.9247i -0.3066 + 0.2423i 2.5303 + 1.9583i -0.9545 + 2.1460i 0.5129 - 0.0446i 0.5054 - 0.1449i -0.0878 + 1.0534i 0.9963 + 1.0021i

默认情况下,randn (n,“喜欢”,1我)从标准复正态分布生成随机数。实部和虚部是具有均值的独立正态分布随机变量0和方差1/2.协方差矩阵是这样的(1/2 0;0 1/2)

Z = randn(50000,1,“喜欢”1我);Cov_z = cov(real(z),imag(z),1)
cov_z =2×20.4980 0.0007 0.0007 0.4957

为了指定一个更一般的复正态分布,定义均值和协方差矩阵。例如,指定平均值为 μ 1 + 2 协方差矩阵为 σ σ xx σ xy σ yx σ yy 2 - 2 - 2 4

Mu = 1 + 2i;Sigma = [2 -2;2 4];

转换先前生成的数据,使其遵循新定义的复正态分布。包括因素√6 (2)缩放数据时因为原始分布中实部和虚部的方差是1/2。

R = chol(sigma);Z_comp = [real(z) imag(z)];z = repmat(mu,50000,1) + z_comp*sqrt(2)*R*[1;1我);z (1:10)
ans =10×1复杂1.7604 + 3.8331i -2.1945 + 6.4138i 1.4508 - 0.3002i 0.3868 + 3.0977i 6.0606 + 0.8560i -0.9090 + 8.2011i 2.0259 + 0.8850i 2.0108 + 0.6993i 0.8244 + 4.2823i 2.9927 + 2.0115i

输入参数

全部折叠

方阵的大小,指定为整数值。

  • 如果n0,然后X是一个空矩阵。

  • 如果n是阴性的,那么它是作为0

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

每个维度的大小,作为整数值的单独参数指定。

  • 如果任何维度的大小为0,然后X是一个空数组。

  • 如果任何维度的大小为负,则将其视为0

  • 在二次元之外,randn忽略大小为1的尾随维度。例如,randn (3, 1, 1, 1)生成一个3乘1的随机数向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

每个维度的大小,指定为整数值的行向量。这个向量的每个元素都表示对应维度的大小:

  • 如果任何维度的大小为0,然后X是一个空数组。

  • 如果任何维度的大小为负,则将其视为0

  • 在二次元之外,randn忽略大小为1的尾随维度。例如,Randn ([3 1 1 1])生成一个3乘1的随机数向量。

例子:Sz = [2 3 4]创建一个2 × 3 × 4数组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

要创建的数据类型(类)指定为“替身”“单身”,或另一个提供randn金宝app支持。

例子:“单身”randn (5)

要创建的数组原型,指定为数字数组。

例子:randn(5“喜欢”p)

数据类型:|
复数支持:金宝app是的

随机数流,指定为RandStream对象。

例子:s = RandStream("dsfmt19937");randn(年代,1 [3])

更多关于

全部折叠

标准实态和标准复正态分布

在生成随机实数时,randn函数生成符合标准正态分布的数据:

f x 1 2 π e x 2 / 2

在这里,x是一个均值为0,方差为1的随机实变量。

当生成随机复数时,例如使用命令时randn(…,“喜欢”,1我),randn函数生成符合标准复正态分布的数据:

f z 1 π e | z | 2

在这里,z是一个随机复变量,其实部和虚部是均值为0,方差为1/2的独立正态分布随机变量。

提示

  • 产生的数字序列randn是由统一伪随机数生成器的内部设置决定的吗兰德兰迪,randn.您可以使用rng

扩展功能

版本历史

R2006a之前介绍

全部展开