matlab中的随机矩阵及其相关函数的使用

来源:互联网 发布:软件平台验收报告 编辑:程序博客网 时间:2024/05/17 01:57

一、rand函数的用法

  1. R=rand(n) 产生一个N*N的随机矩阵,其中的元素来自0-1均匀分布
  2. R=rand([M,N]) 产生一个M*N的随机矩阵
  3. R=rand(size(A)) 产生一个同矩阵A大小一致的随机矩阵

举例如下:

r=a+(b-a).*rand(100,1);//产生一个[a,b]之间的100*1的随机矩阵

二、randi函数

  1. R=randi(IMAX,N) 产生一个N*N的矩阵,其中矩阵的元素均来自于离散均匀分布1:IMAX之间
  2. R=randi(IMAX,M,N)或者randi(IMAX,[M,N])   产生一个M*N的随机整数矩阵
  3. R=randi([IMIN,IMAX],[M,N])  产生一个IMIN:IMAX之间的M*N的随机整数矩阵
       随机数字序列是由均匀分布的伪随机数产生器的间隔状态决定。我们可以通过控制默认的数据流来控制随机数字序列的产生。
       将默认流重置到固定的状态可以产生重复的数字序列,将stream置于不同的状态会导致不同的计算。
r=randi(10,100,1,'unit32');r=randi([-10,10],100,1);//通过结果可以发现,i1和i2产生的随机数组完全相同,这是因为默认流的状态设置为相同的状态。defaultStream=RandStream.getDefaultStream;savedState=defaultStream.State;i1=randi(10,1,5);defaultStream.State=savedState;i2=randi(10,1,5);

三、randn函数的用法

  1. randn(N)   产生标准正态分布的N*N的随机矩阵
  2. randn([M,N])  M*N的随机矩阵
  3. randn(size(A))  同A一致的随机矩阵

    用法用例:

//产生一个均值为1,标准差为2的正态分布的随机数组r=1+2.*randn(100,1);

四、randperm函数与sprand函数

  1. randperm(n)  产生一个1-n之间的随机顺序
  2. sprand   用于产生随机稀疏矩阵(服从0-1分布)
  3. sprand(S)   用于产生同S结构相同的随机稀疏矩阵,但元素都是0-1之间的随机数
  4. sprand(m,n,density)  m*n的随机稀疏矩阵,它的非零元素个数近似与m*n*density,density在0-1之间,且不要过大
0 0
原创粉丝点击