资源描述
总结一下,MATLAB中随机矩阵获得
一、randperm
randperm(n);
产生从零到n长度为n的随机整数
例如
复制内容到剪贴板
代码:
>> randperm(10)
ans =
8 2 10 7 4 3 6 9 5 1
>>
二、randsrc
无参数形式,随机输出-1或1;
randsrc(m,n);
randsrc(m);
输出m*n阶或m*m阶矩阵,元素为随机出现的-1或1,概率为1/2;
randsrc(m,n,alphabet);
输出m*n阶矩阵,元素由alphabet确定,概率等同;
randsrc(m,n,[alphabet;prob]);
prob参数确定每元素的出现概率。
例如
复制内容到剪贴板
代码:
>> randsrc
ans =
1
>> randsrc(5)
ans =
1 -1 -1 -1 1
-1 1 -1 -1 -1
-1 -1 -1 -1 -1
1 -1 -1 1 1
1 1 1 -1 1
>> randsrc(2,2,[1 2 3 4])
ans =
1 4
3 1
Randsrc(2,2,[1 2 3 4;.3. 4 .2 .1])
三、randint
无参数形式随机输出0或1;
randint(m,n);
randint(m);
按同样概率输出由0或1组成的m*m阶或m*n阶矩阵
randint(m,n,rg);
按照同样概率随机输出[0,rg-1](rg>0)或[rg+1,0](rg<0)或[minrg,maxrg](rg为数组)之间的数字。
例如
复制内容到剪贴板
代码:
>> randint(2,3)
ans =
1 1 0
1 0 0
>> randint(2,3,8)
ans =
1 2 1
5 4 5
>> randint(1,2,[2 4])
ans =
3 4
四、unifrnd
unifrnd(a,b);
unifrnd(a,b,m);
unifrnd(a,b,m,n);
ab为同样长度的向量或矩阵,产生与ab同样大小的向量或矩阵,对应元素为位于ab对应元素之间的随机数,如果有m或m,n参数,则产生m*m或m*n阶矩阵。
例如
复制内容到剪贴板
代码:
>> unifrnd(3,4)
ans =
3.0648
>> unifrnd(2,4,4)
ans =
3.9767 2.6679 3.5207 2.7596
3.1656 2.8658 3.0596 3.5667
2.8470 2.4519 3.2811 3.3617
3.0310 3.1596 2.4181 2.9222
五、unidrnd
unidrnd(N);
unidrnd(N,m,n);
unidrnd(N,m);
产生不大于N的随机整数,N要求为整数矩阵,如果没有mn参数,则产生与N相同大小,否则产生m*n或m*m阶矩阵。
例如
复制内容到剪贴板
代码:
>> unidrnd(2,4)
ans =
1 1 2 1
2 2 1 1
2 2 1 1
1 1 1 2
>> unidrnd([1 2 5 6 7 2 3 4 ])
ans =
1 1 4 4 1 1 1 3
展开阅读全文