在matlab中R = random('Normal',0,1,2,4): 生成期望为 0,标准差为 1 的(2 行 4 列)2× 4 个正态随机数

然后用std2函数求矩阵R的方差,这个方差会是1吗,如果不是,那Matlab中random函数的功能到底是什么能够具体深入的说明下吗

R = random('Normal',0,1,2,4)确实是产生标准正态分布,(2行4列)
但std2(R)通常不会正好为1,而是大约为1.
产生正态分布是指你产生的这些点,是以正态分布方式产生,而不是产生出来就完全服从正态分布,但可以肯定基本服从正态分布,也就是一定置信区间内符合正态分布。
例如:
R =
-0.6918 1.2540 -1.4410 -0.3999
0.8580 -1.5937 0.5711 0.6900

ans =
1.0886

接近1,但不是1.
换个容易理解的,你要产生0到1的均匀分布(1行4列),如
>> rand(1,4)
ans =
0.8147 0.9058 0.1270 0.9134
很明显的,你产生的4个数分布不是均匀的等差分布,但其产生的方式是0到1内均匀的,产生每个数的概率是相等的。
明白?

至于random的功能,可以
>>help random
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-07
R = random('Normal',0,1,2,4)
R =
1.6949 -0.4789 -0.2871 -0.2937
-1.6471 -1.4904 0.1958 -1.0145
>> std2(R)
ans =
1.0619
从上面可以看出,生成的矩阵R的方差并不是1.
其实,在生成均值为0,方差为1的随机数时,matlab要遵守一定的算法,这个算法保证在数据量非常大时,其均值为0,方差为1,但并不能保证数据量非常小时,计算其均值和方差也是0和1,如上题。再如
R=randn(1000);mean2(R),std2(R)
ans =
-0.0023
ans =
0.9992
R=randn(2000);mean2(R),std2(R)
ans =
-1.0444e-004
ans =
1.0001本回答被提问者和网友采纳

在matlab中R = random('Normal',0,1,2,4): 生成期望为 0,标准差为 1...
R = random('Normal',0,1,2,4)确实是产生标准正态分布,(2行4列)但std2(R)通常不会正好为1,而是大约为1.产生正态分布是指你产生的这些点,是以正态分布方式产生,而不是产生出来就完全服从正态分布,但可以肯定基本服从正态分布,也就是一定置信区间内符合正态分布。例如:R = -0.6918...

怎么将有一定概率的数据用MATLAB随机输出
第一种方法是用 random 语句,其一般形式为 y = random('分布的英文名',A1,A2,A3,m,n),表示生成 m 行 n 列的 m × n 个参数为 ( A1 , A2 , A3 ) 的该分布的随机数。例如:(1) R = random('Normal',0,1,2,4): 生成期望为 0,标准差为 1 的(2 行 4 列)2× 4 个正态...

random('Normal',0,1,1,1)
R = random('Normal',0,1,2,4)R = 1.6949 -0.4789 -0.2871 -0.2937 -1.6471 -1.4904 0.1958 -1.0145 >> std2(R)ans = 1.0619 从上面可以看出,生成的矩阵R的方差并不是1.其实,在生成均值为0,方差为1的随机数时,matlab要遵守一定的算法,这个算法保证在...

matlab中random函数的用法
Y = randn(n),返回一个n*n的随机项的矩阵。如果n不是个数量,将返回错误信息。Y = randn(m,n) 或 Y = randn([m n]),返回一个m*n的随机项矩阵。Y = randn(m,n,p,...) 或 Y = randn([m n p...]),产生随机数组(感觉就是三维数组,请看如下例子)。

random函数matlabrandom函数
1、用法:随机生成(0,1)之间的浮点数***.***()2、随机生成100-200的整数***.randint(100,200)3、随机产生范围为10间隔为2的数***.randrange(0,11,2)注:这里输出(0,2,4,6,8,10)中一个4、从序列中随机抽选一个数***.choice(list)5、随机排序***.shuffle(list)注:list元素为...

在MATLAB中 如何产生 均值为0 方差为1 的 复高斯矩阵???注意 是复高斯...
你的方差指的是什么,你自己按照方差的定义来看一看,0均值,然后一堆复数做一些运算,怎么会得到一个实数1呢~~所以这个方差1指的是谁的方差呢?我猜八成你是要产生一个复高斯白噪声,功率为1吧~下边这样就行了~~~X = sqrt(1\/2) * ( randn(1,100) + j * randn(1,100) );...

matlab 中想在一定分布的数据中随机采样N个数据,怎么做呢
一、Matlab在一个集合中随机取数:function 'randperm'for example:a=[1 2 3 4 5 6 7 8 9 10];b=a(randperm(length(a)));x=b(1:5);matlab生成随机数据matlab本身提供很多的函数来生成各种各样的随机数据:normrnd 可以生成一定均值和标准差的正态分布gamrnd 可以生成gamma分布的伪随机数矩阵chi2rnd 可以...

在MATLAB中,怎么生成高斯0-1分布的随机数的函数?
在sources里有个random number 其实最简单的直接用userdefined function自己定义即可。___matlab命令就是randn(m,n)生成m行n列均值为0方差为1的标准正态分布随机数。或者用命令normrnd(mu,sigma,m,n)生成m行n列均值为mu标准差为sigma的正态分布随机数 还有我想说明一下,正态分布(即高斯分布)所生...

matlab中rand是什么意思
matlab中rand的意思是产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。语法: 用rand函数随机取100个从-1到1(原来写成了2)的数x1,x2,...,x = rand(1,100) * 2 - 1。

matlab里如何产生方差均值已知的服从正态分布的随机数?
mvnrnd(mu,sigma,number)——产生number个均值为mu,协方差矩阵为sigma的正态分布随机数 例子:mvnrnd([1,2],[2 1;1 4],100)

相似回答