MATLAB中随机矩阵的生成方法

标签:
matlab随机矩阵 |
分类: 工作札记 |
由于实际情况,需要在MATLAB中获得随机矩阵,在以下文章中得到较大的收获,并根据实际操作进行了补全。
http://www.ilovematlab.cn/thread-32278-1-1.html
一、randperm
randperm(n):产生长度为n的随机数列,元素为1到n的随机整数。
例如:
http://s16/mw690/002jgDYpgy6FuSj6a7B3f&690
二、randsrc
randsrc:无参数形式,随机输出-1或1;
例如:
http://s7/mw690/002jgDYpgy6FuSLJjSe36&690
randsrc(m):输出m*m阶矩阵,元素为随机出现的-1或1,概率为1/2;
例如:
http://s8/mw690/002jgDYpgy6FuSNL6Wr17&690
randsrc(m,n):输出m*n阶矩阵,元素为随机出现的-1或1,概率为1/2;
例如:
http://s9/mw690/002jgDYpgy6FuSPnmGs58&690
randsrc(m,n,alphabet):输出m*n阶矩阵,元素由alphabet确定,概率等同;
例如:
http://s7/mw690/002jgDYpgy6FuSSyFuKa6&690
randsrc(m,n,[alphabet;prob]):prob参数确定每元素的出现概率。
例如:
http://s5/mw690/002jgDYpgy6FuSVidqQf4&690
此处,prob中的元素之和必须为1,否则会出错。
例如:
http://s16/mw690/002jgDYpgy6FuSZeaB1bf&690
三、randint
randint:无参数形式随机输出0或1;
randint(m):按相等概率输出由0或1组成的m*m阶矩阵;
例如:
http://s7/mw690/002jgDYpgy6FuThjGpU86&690
randint(m,n):按相等概率输出由0或1组成的m*n阶矩阵;
例如:
http://s2/mw690/002jgDYpgy6FuTittzr61&690
randint(m,n,rg):按照相等概率随机输出[0,rg-1](rg>0)或[rg+1,0](rg<0)或[minrg,maxrg](rg为数组)之间的数字。
例如:
http://s12/mw690/002jgDYpgy6FuTljlk70b&690
四、unifrnd
unifrnd(a,b):产生a到b之间的一个随机浮点数;
例如:
http://s7/mw690/002jgDYpgy6FuTEYFhQb6&690
unifrnd(a,b,m):产生m*m阶矩阵,元素为a到b之间的随机浮点数;
例如:
http://s5/mw690/002jgDYpgy6FuTLQE1C74&690
unifrnd(a,b,m,n):产生m*n阶矩阵,元素为a到b之间的随机浮点数;
例如:
http://s14/mw690/002jgDYpgy6FuTMYm8l9d&690
ab为同样长度的向量或矩阵,产生与ab同样大小的向量或矩阵,对应元素为位于ab对应元素之间的随机数。
当a和b均为向量时:
无m和n参数时,产生于a和b相同阶数的矩阵;
当有m和n参数时,m和n的值必须与a、b的行数和列数相同方可,否则会出错;
在对应位置上,b的值必须大于a的值,否则对应位置无法产生数据。
示例如下:
http://s6/mw690/002jgDYpgy6FuVCMLJz85&690
当a和b均为矩阵时:
无m和n参数时,产生于a和b相同阶数的矩阵;
当有m和n参数时,m和n的值必须与a、b的行数和列数相同方可,否则会出错;
在对应位置上,b的值必须大于a的值,否则对应位置无法产生数据。
示例如下:
http://s16/mw690/002jgDYpgy6FuVix7dl4f&690
五、unidrnd
unidrnd(N):产生0到N的随机整数;
例如:
http://s3/mw690/002jgDYpgy6FuU3fnoK12&690
unidrnd(N,m):产生m*m阶矩阵,元素为0到N的随机整数;
例如:
http://s13/mw690/002jgDYpgy6FuU4iav25c&690
unidrnd(N,m,n):产生m*n阶矩阵,元素为0到N的随机整数;
例如:
http://s11/mw690/002jgDYpgy6FuU5e7Lc6a&690
六、normrnd
产生服从正态分布的随机矩阵。
normrnd(mu,sigma):产生均值为mu、方差为sigma的随机数;
normrnd(mu,sigma,m):产生均值为mu、方差为sigma的m*m阶矩阵;
例如:
http://s13/mw690/002jgDYpgy6FuWpbR4Eec&690
normrnd(mu,sigma,m,n):产生均值为mu、方差为sigma的m*n阶矩阵。
例如:
http://s7/mw690/002jgDYpgy6FuWfS50O46&690
均值由mu确定,sigma为方差,mu和sigma可以为相同size的矩阵或向量,没有mn参数输出同样size的矩阵或向量,否则expand另外一个参数使之匹配。
当mu和sigma为矩阵时,可以没有m和n参数,此时产生与mu和sigma同阶的矩阵;当有m和n参数时,m和n参数必须与mu和sigma矩阵的行数和列数相同,否则会报错。
例如:
http://s10/mw690/002jgDYpgy6FuWIc3Hja9&690
七、linspace
产生线性等间距的数列。
linspace(a,b,m):产生长度为m的数列,元素为a到b的等间距浮点数。也可以采用“from:step:to”方式实现,是其一种特殊情况。
例如:
http://s10/mw690/002jgDYpzy6FuXz8L8Z79&690
暂时只试验了这些,以后有新发现的再补充。