首先 rand 和 randi 都是用来生成随机数的命令
区别:1.rand是产生均匀分布的随机数;randi是产生均匀分布的随机整数
2.rand产生的是随机数,randi产生的是伪随机数(随机数和伪随机数没什么太大影响,在写代码时可以忽略,只需要考虑要求是否为整数)
下面介绍一下rand和randi一些常用的语法:
rand:a. X = rand
返回一个在区间 (0,1) 内均匀分布的随机数
b.X = rand(
返回一个 n
)n
×n
的随机数矩阵
c.***指定区间内的随机数:用下面这个公式:r = a + (b-a).*rand(m,n)
生成区间 (a,b) 内的 m*n个随机数。
%%%%%% rand是生成的均匀分布的随机数
% x=rand:返回一个在区间[0 1]的随意一个数
x=rand
% x=rand(n):返回的是一个 n×n 的随机数矩阵
x=rand(4)
%r=a+(b-a).*rand(m,n) 生成区间[a,b]内的m*n个随机数
r=-5+10.*rand(10,1)
x = 0.1078
x = 4×4
0.9063 0.5944 0.1615 0.5985
0.8797 0.0225 0.1788 0.4709
0.8178 0.4253 0.4229 0.6959
0.2607 0.3127 0.0942 0.6999
r = 10×1
1.3853
-4.6640
-4.3119
-1.8040
0.3086
1.5445
-0.9238
3.1998
2.1836
4.6865
randi: a.X = randi(
返回一个介于 imax
)1
和 imax
之间的伪随机整数标量
b.X = randi(
返回 imax
,n
)n
×n
矩阵,其中包含从区间 [1
,imax
] 的均匀离散分布中得到的伪随机整数。
c.***指定区间内的随机整数:X = randi([
返回一个从区间 [imin
,imax
],m,n)imin
,imax
] 的均匀分布的整数。生成了一个m行n列的矩阵
%%%%%% randi是生成的均匀分布的伪随机整数
% x= randi(imax):返回的是一个数 1<x<imax
x=randi(2)
% x=randi(imax,n): 返回的是一个矩阵n*n,矩阵里面的数满足 [1,imax]
x=randi(4,4) %返回的是一个4*4矩阵,并且1<x(ij)<4
% X = randi([imin,imax],m,n) 指定区间内的随机整数,指定区间为[imin,imax],生成一个m行n列的矩阵
x=randi([5,20],5,3)
x = 1
x = 4×4
4 4 2 3
1 3 4 2
1 1 1 1
3 2 4 2
x = 5×3
12 14 18
6 9 20
14 9 16
8 14 10
11 9 14
注意:“ *** ” 语句稍加注意,当要求生成指定区间内的随机数时,用这两条命令。