在MATLAB中,rand()randn() 函数都用于生成随机数,但它们生成的随机数服从不同的分布。

  • rand() 函数:生成的随机数服从均匀分布在区间 (0, 1)上。也就是说,生成的随机数取值范围在 0 到 1 之间,且每个值出现的概率是相等的。

    rand()函数的调用格式;
    #  Y = rand(n),返回一个在(0,1)区间均匀分布的n*n的随机矩阵Y
    #  Y = rand(m,n)或Y = rand([m,n]),返回一个在(0,1)区间均匀分布的m*n的随机矩阵Y
    #  Y = rand(size(A)),返回一个在(0,1)区间均匀分布的与矩阵A同维数的随机矩阵Y
    例题一、利用rand()函数生成一个3x4在(0,1)区间均匀分布的矩阵Y

    Y = rand(3,4)
    

    输出结果

    例题二,在(-5,5)区间均匀分布的矩阵Y

    Y = 5-10*rand(3,4)
  • 输出结果

  • randn() 函数:生成的随机数服从标准正态分布,即均值为 0,方差为 1 的正态分布(高斯分布)。这意味着生成的随机数集中在均值附近,并且以指数衰减的方式分布在两侧。

总的来说,rand() 生成的随机数更均匀地分布在 [0, 1] 区间内,而 randn() 生成的随机数则更偏向于集中在均值附近,呈现出正态分布的特征。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐