加载中…
个人资料
追梦人_小山
追梦人_小山
  • 博客等级:
  • 博客积分:0
  • 博客访问:5,023
  • 关注人气:89
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB中随机矩阵的生成方法

(2014-01-03 11:28:25)
标签:

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

暂时只试验了这些,以后有新发现的再补充。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有