在matlab中R = random('Normal',0,1,2,4): 生成期望为 0,标准差为 1 的(2 行 4 列)2× 4 个正态随机数
然后用std2函数求矩阵R的方差,这个方差会是1吗,如果不是,那Matlab中random函数的功能到底是什么能够具体深入的说明下吗...
然后用std2函数求矩阵R的方差,这个方差会是1吗,如果不是,那Matlab中random函数的功能到底是什么能够具体深入的说明下吗
展开
2个回答
展开全部
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
但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
展开全部
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
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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |