如何生成具有均匀分布的条目的随机实对称方阵

时间:2012-03-17 13:42:36

标签: matlab random matrix symmetric

我想生成一个随机的实对称方阵,其条目均匀分布在0和1之间。 我的尝试是: a = rand(5); b = a + a.'

我担心的是,虽然矩阵a根据文档http://www.mathworks.com.au/help/techdoc/ref/rand.html统一分布,但矩阵b可能不是,因为两个随机数的平均值可能与原始数字不同。

我试过用     hist(a); hist(b) 但不确定如何解释结果图。 编辑:根据Oli矩阵b不再均匀分布,是否有办法实现这一目标?

2 个答案:

答案 0 :(得分:14)

不,如果你这样做,那么b将不会均匀分布;它会有一个triangular distribution

这样的事情怎么样:

a = rand(5);
b = triu(a) + triu(a,1)';

其中triu()采用矩阵的上三角部分。

答案 1 :(得分:2)

您只能在矩阵的一半上获得均匀分布的条目。

a=rand(5);
b=triu(a).'+triu(a,1);