【问题标题】:Integer random matrix with different ranges in matlabmatlab中具有不同范围的整数随机矩阵
【发布时间】:2017-08-01 18:05:25
【问题描述】:

如何创建一个随机矩阵(比如 B),其中元素 B(i,j) 是闭区间 0 和 A(i,j) 中的均匀随机整数。 A 是给定的矩阵。例如:

A = [6, 2, 5, 7;
     12, 0, 4, 0;
     8, 0, 10, 1;
     11, 6, 2, 5];

【问题讨论】:

    标签: matlab random integer


    【解决方案1】:
    B = floor(rand(size(A)).*(A+1))
    

    解释

    • rand(size(A)) 创建一个与 A 大小相同的矩阵,其中元素均匀分布在 0 和 1 之间。
    • rand(size(A)).*(A+1)每个元素(i,j)都是0到A(i,j)+1之间的随机分布
    • floor(rand(size(A)).*(A+1))每个单位宽度范围都映射到最近的小整数

    请注意,B = round(rand(size(A)).*A) 的作用几乎相同,只是 0 和 A(i, j) 发生的概率较小。

    【讨论】:

    • 不错的答案! :)
    猜你喜欢
    • 2013-01-07
    • 2018-05-23
    • 1970-01-01
    • 2019-08-09
    • 2013-10-10
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多