- rand ⇒ 0-1 区间上的均匀分布;
0. 状态的保存、seed 值的指定
RNDN_STATE = randn('state');
RND_STATE = rand('state');
randn('state', seed);
rand('state', seed);
1. randi
均匀分布的伪随机整数。
randi,i 表示 integer。
% randi 函数统一左值为 1, 且可以取到右端点
X = randi(imax,sz1,...,szN)
% X = randi(5, 2, 3, 4)
% 1~5,两行三列,4 stacks
X = randi(imax,sz)
% X = randi(5, [2, 3, 4])
% 同上,只是第二个参数由可变参数变为一个一维矩阵
当然也可以指定左值:
>> randi([5, 10], 2, 3)
ans =
9 6 7
9 7 8
2. unidrnd
R = unidrnd(N)
R = unidrnd(N,m,n,...)
R = unidrnd(N,[m,n,...])
Discrete uniform random numbers,离散型均匀随机数(因为是离散所以是整数);
>> a = unidrnd(1)
a = 1
>> unidrnd(2, 2, 3)
ans =
1 2 2
1 1 1
>> a = unidrnd(0)
a = NaN
>> a = unidrnd([1 2 3; 4 5 0])
a =
1 2 2
2 3 NaN
3. unifrnd
Continuous uniform random numbers
R = unifrnd(A,B)
R = unifrnd(A,B,m,n,...)
R = unifrnd(A,B,[m,n,...])
前两个参数表示区间范围,后续参数表示返回的矩阵的维度;
- unifrnd(0, 1) ⇒ rand
- rand(m, n) ⇒ unifrnd(0, 1, m, n)
a = 0; b = 1:5;
r1 = unifrnd(a,b)
r1 =
0.8147 1.8116 0.3810 3.6535 3.1618
B = repmat(b,5,1);
R = unifrnd(a,B)
R =
0.0975 0.3152 0.4257 2.6230 3.7887
0.2785 1.9412 1.2653 0.1428 3.7157
0.5469 1.9143 2.7472 3.3965 1.9611
0.9575 0.9708 2.3766 3.7360 3.2774
0.9649 1.6006 2.8785 2.7149 0.8559