unifrnd可以创建随机的连续均匀分布的数组。
1、R = unifrnd(A,B)
A和B可以是向量也可以是标量,若两个都是向量,则两者都是列向量或都是行向量,而且维数相等。
从A到B产生一系列区间,若A和B均为向量,则区间个数等于他们的维数;若其中恰有一个是向量,假设A为向量,则区间个数等于A的维数;若两个均为标量,则A <= B,区间个数为1,且区间为[A,B]。然后在这一系列区间中随机产生连续均匀分布的数组R并返回之。
具体例子下述。
例1.
执行指令
>> x = [1:9];
>> y = [2:10];
>> unifrnd(x,y)
得到
ans =
1.9595 2.6557 3.0357 4.8491 5.9340 6.6787 7.7577 8.7431 9.3922
从x到y产生区间[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9.10].然后从每个区间产生一个随机数,得到R。
例2.
执行指令
>> x = [1:3];
>> R1 = unifrnd(x,1);
>> R2 = unifrnd(1,x);
得到
R1 =
1 NaN NaN
R2 =
1.0000 1.2769 1.0923
NaN表示"not a number"即不是数字。
观察语句R1 = unifrnd(x,1);“从x到1”产生区间[1,1],[2,1],[3,1]显然只有第一个区间可以取得“随机数”1,其余区间不符合规定,故而返回NaN。
观察R2 = unifrnd(1,x);从1到x产生区间[1,1],[1,2],[1,3],取得随机数组R2.
2.R = unifrnd(A,B,M,N,...) or R = unifrnd(A,B,[M,N,...])
returns an M-by-N-by-... array.
扩展资料:
MatLab随机数生成函数系列:
rand 均匀分布
randn 正态分布
sprand 均匀分布的稀疏矩阵
sprandn 正态分布的稀疏矩阵
sprandsym 正态分布的对称的稀疏矩阵
randperm 均匀分布的序列
betarnd 贝塔分布
binornd 二项分布
chi2rnd 卡方分布
exprnd 指数分布
frnd f分布
gamrnd 伽玛分布
geornd 几何分布
hygernd 超几何分布
lognrnd 对数正态分布
nbinrnd 负二项分布
ncfrnd 非中心f分布
nctrnd 非中心t分布
ncx2rnd 非中心卡方分布
normrnd 正态(高斯)分布
poissrnd 泊松分布
raylrnd 瑞利分布
trnd 学生氏t分布
unidrnd 离散均匀分布
unifrnd 连续均匀分布
weibrnd 威布尔分布
参考资料:
在matlab中unifrnd函数是生成(连续)均匀分布的随机数
使用方法:
R = unifrnd(A,B)
生成被A和B指定上下端点[A,B]的连续均匀分布的随机数组R。
如果A和B是数组,R(i,j)是生成的被A和B对应元素指定连续均匀分布的随机数。
如果N或P是标量,则被扩展为和另一个输入有相同维数的数组。
R = unifrnd(A,B,m,n,...) 或 R = unifrnd(A,B,[m,n,...])
返回m*n*...数组。
如果A和B是标量,R中所有元素是相同分布产生的随机数。
如果A或B是数组,则必须是m*n*...数组。
r2 = unifrnd(a,b(2),1,5)
中的b(2)不应该是b(1,2)吗,为什么可以用b(2)呢,什么情况下可以这么用呢