MATLAB如何使用sprandn函数生成正态分布的随机稀疏矩阵
【语法说明】
R=sprandn(S):函数返回一个正态分布的随机稀疏矩阵R,其非零元素的位置与稀疏矩阵S相同。
R=sprandn(m,n,density):生成一个m×n的正态分布的随机矩阵,其中非零元素的位置是随机的,数量约为m*n*density。
R=sprandn(m,n,density,rc):生成一个m×n的正态分布的随机矩阵,非零元素的数量约为m*n*density,近似的条件数为1/rc。
【功能介绍】生成正态分布的随机稀疏矩阵,这里的正态分布指标准正态分布,对于均值为μ、方差为σ 2 的正态分布,可以使用x×σ+μ的形式生成,其中x是服从标准正态分布的随机数。
【实例】生成均值为1,方差为4的正态分布稀疏矩阵,位置任意,元素个数约为250个。
>> rng(2)
>> a=sprandn(100,100,.025); % 生成 250个左右非零元素的随机稀疏矩阵
>> b=sparse(nonzeros(a)*2+1); % 将标准正态分布转为参数为(1,4)的正态分布
>> mean(nonzeros(b)) % 样本均值
ans =
0.9331
>> var(nonzeros(b)) % 样本方差
ans =
3.7550
【实例讲解】稀疏矩阵b中非零元素的均值为0.9331,方差为3.755,与预期基本一致。nonzeros 函数用于提取稀疏矩阵的非零元素。