【问题标题】:How to generate a random real symmetric square matrix with uniformly distributed entries如何生成具有均匀分布条目的随机实对称方阵
【发布时间】:2012-04-02 18:33:31
【问题描述】:

我想生成一个随机实对称方阵,其条目均匀分布在 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 不再均匀分布,有没有办法做到这一点?

【问题讨论】:

    标签: matlab random matrix symmetric


    【解决方案1】:

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

    这样的事情怎么样:

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

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

    【讨论】:

    • 谢谢,Oli,关于如何使其均匀分布的任何建议?
    • 谢谢,Oli,所以使用 triu 函数可以保持均匀分布?我刚刚运行它, hist(b) 看起来与我的矩阵 b 不同。
    • @Aina:这种方法避免了将任何元素添加在一起。
    • @Aina:25 个元素不足以生成有用的直方图。例如,您应该生成 10000 个这些随机矩阵,然后对整个事物进行直方图。
    • 谢谢,Oli,刚刚尝试创建一个 1000x1000 矩阵,然后将其直方图与使用您的方法创建的矩阵 b 的直方图进行比较。看起来完全一样!再次感谢!
    【解决方案2】:

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

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

    【讨论】:

    • 感谢 g24l,那么不可能有一个具有均匀分布条目的随机对称矩阵?
    • @Aina :我在谈论如何生成矩阵。矩阵的元素是均匀分布的,但不是随机的,也不是 iid。
    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 2013-12-09
    • 2011-05-31
    • 2014-02-04
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多