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

然后用std2函数求矩阵R的方差,这个方差会是1吗,如果不是,那Matlab中random函数的功能到底是什么能够具体深入的说明下吗... 然后用std2函数求矩阵R的方差,这个方差会是1吗,如果不是,那Matlab中random函数的功能到底是什么能够具体深入的说明下吗 展开
 我来答
cxd1301
2013-08-07 · TA获得超过3021个赞
知道小有建树答主
回答量:593
采纳率:50%
帮助的人:316万
展开全部
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
我行我素850915
2013-08-07 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1760万
展开全部
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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式