全站数据
8 4 2 0 5 8 1

randn函数的用法c语言

鹭岛黄药师 | 简单学习,快乐成才!         
问题更新日期:2024-10-19 18:46:36

问题描述

randn函数的用法c语言,麻烦给回复
精选答案
最佳答案

rand函数用来产生均匀分布的随机数或矩阵

语法

Y = rand(n)

Y = rand(m,n)

Y= rand([m n])

Y = rand(m,n,p,...)

Y = rand([m n p...])

Y = rand(size(A))

rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。

Y = rand(n) 返回一个n x n的随机矩阵。如果n不是数量,则返回错误信息。

Y = rand(m,n) 或 Y = rand([m n]) 返回一个m x n的随机矩阵。

Y = rand(m,n,p,...) 或 Y = rand([m n p...]) 产生随机数组。

Y = rand(size(A)) 返回一个和A有相同尺寸的随机矩阵。

比如输入:

y=rand(3,4);

>> y

y =

0.16560.65410.45050.9133

0.60200.68920.08380.1524

0.26300.74820.22900.8258

另外还有一个:s=rand('state')

这一个是产生一个每次都会变化的数值,如

输入:

y=rand('state');

>> y

y =

0.8301

0.6705

0.0845

0.0686

0.0371

0.3854

0.1653

0.3752

0.7297

0.4534

0.8596

0.5685

0.9848

0.3742

0.3715

0.9499

0.9774

0.7428

0.4958

0.4157

0.0777

0.3299

0.9429

0.0906

0.3091

0.5518

0.0350

0.0018

0.9854

0.8229

0.4586

0.9710

0

0

0.0000

(2)randn函数用法

randn的用法和上面的rand函数的用法一样,所不同的是,randn产生的数值服从正态分布;

产生一个随机分布的指定均值和方差的矩阵:将randn产生的结果乘以标准差,然后加上期望均值即可。例如,产生均值为1.6,方差为0.1的一个6*6的随机数方式如下:

x = 1.6 + sqrt(0.1) * randn(6)

x =

1.63921.86101.51211.76061.50541.2903

2.05432.03611.82181.68921.60721.2343

0.97991.26540.95121.61061.51711.4313

1.53751.45181.48811.17831.04650.9667

1.21801.51381.33961.95651.50971.9049

2.51961.94741.10131.71071.33711.7645

另外下面的用法需要整理一下:

1,rand(3)*3 rand(3)是一个3*3的随机矩阵(数值范围在0~1之间) 然后就是每个数乘上3

2 ,用matlab随机产生50个1到300之间的正数1+fix(300*rand(1,50));

3,用rand函数随机取100个从-1到1的数x1,x2,...,x = rand(1,100) * 2 - 1;

那么上面的fix函数是什么意思呢?

fix就是取整函数,当是实数时取整,去掉小数点后面的位数;如果是复数,则实数部分和虚数部分均取整,比如下面的两个例子所示:

x=3.32;

>> y=fix(x)

y =

3

那么,遇到复数怎么办呢?

x = [1-2.9i 3+4.5i 5-6.7i 9-10.2i]

x =

1.0000 - 2.9000i 3.0000 + 4.5000i 5.0000 - 6.7000i 9.0000 -10.2000i

>> y=fix(x)

y =

1.0000 - 2.0000i 3.0000 + 4.0000i 5.0000 - 6.0000i 9.0000 -10.0000i

其他回答

randn函数是Matlab中用于生成符合正态分布的随机数的函数,而C语言中没有内置的randn函数。不过,可以使用C语言中的rand函数结合一些数学方法来模拟正态分布的随机数生成过程。

具体来说,可以使用Box-Muller转换或Ziggurat算法等方法来生成符合正态分布的随机数。在使用这些方法时,需要注意参数的设置和算法的精度,以保证生成的随机数符合正态分布的要求。