rand用法
rand
是MATLAB的一种内置函数,用于生成均匀分布的伪随机数。它有几种不同的使用方法。
-
rand
: 无参数调用时,这个函数返回一个在0到1之间的随机浮点数。 -
rand(n)
: 这个函数返回一个n x n
的矩阵,其中每个元素都是一个在0到1之间的随机浮点数。 -
rand(m, n)
: 这个函数返回一个m x n
的矩阵,其中每个元素都是一个在0到1之间的随机浮点数。 -
rand([m n])
: 这个函数的功能与rand(m, n)
相同,但是行数和列数是作为长度为2的向量参数传递给函数的。 -
rand(size(A))
: 这个函数返回一个与数组A
相同大小的矩阵,其中每个元素都是在0到1之间的随机浮点数。
例如:
A = rand(3)
输出结果:
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.7537 0.0975 0.9575
rand(RandStream,m,n)
的用法:
创建 RandStream
对象。第一个参数指定生成随机数的算法,第二个参数是名值对参数,用于设置算法的属性。
stream = RandStream('mt19937ar','Seed',0);
-
在上面的例子中,我们使用了 Mersenne Twister 生成随机数,并设置种子为0。
-
使用
rand()
方法生成随机数。第一个参数是RandStream
对象,第二个和第三个参数指定生成随机数矩阵的行数和列数。
r = rand(stream, m, n);
练习:
% 注释
ss = 's' %字符串的命名
b1 = 4
A1= 8 %有大小写的区别
abs(A) %绝对值,类似c语言的数学函数库
char(97) %将assic码为97的转换为字符
str = 'ilovemachinelearning'
%matlab 核心矩阵运算
A = [1 2 3;4 5 6; 3 2 7] %%矩阵格式 行;行;行
B = A' %% 矩阵转置
A * B %%矩阵乘法
C = A(:) %%转为列向量按照列排
D = inv(A) %%矩阵求逆矩阵,要满足求逆的条件
A * D %%单位阵
Q = randi(100,3,3) %%生成一个三行三列三维的随机矩阵
E = zeros(3,3,3) %%zeros(行数,列数,维数)
E(:,:,1) = rand(3,3) %rand(m,n)生成m行n列的均匀分布的伪随机数 %
E(:,:,1) = rand(3,3,"double") %生成指定精度的伪随机数 还可以是single
%E(:,:,1) = rand(3,3)% rand(RandStream,3,3) 利用指定的RandStream(随机数流)生成伪随机数
E(:,:,2) = randn(3,3) %%服从标准正态分布的整数随机数,语法同上
%%语法和以上两个稍微有点儿不同
randi(10) %%在0-10之间生成一个均匀分布的伪随机数
randi([10,20])%%在开区间10-20之间生成一个均匀分布的伪随机数
E(:,:,3) = randi([10,20],3,3) %%同上服从标准正态分布的伪随机数
输出结果:
ss =
's'
b1 =
4
A1 =
8
ans =
8
ans =
'a'
str =
'ilovemachinelearning'
A =
1 2 3
4 5 6
3 2 7
B =
1 4 3
2 5 2
3 6 7
ans =
14 32 28
32 77 64
28 64 62
C =
1
4
3
2
5
2
3
6
7
D =
-1.2778 0.4444 0.1667
0.5556 0.1111 -0.3333
0.3889 -0.2222 0.1667
ans =
1.0000 0 -0.0000
0 1.0000 -0.0000
0 0.0000 1.0000
Q =
42 63 7
16 74 96
82 81 50
E(:,:,1) =
0 0 0
0 0 0
0 0 0
E(:,:,2) =
0 0 0
0 0 0
0 0 0
E(:,:,3) =
0 0 0
0 0 0
0 0 0
E(:,:,1) =
0.7551 0.1565 0.9322
0.7424 0.4573 0.8351
0.8311 0.6181 0.8954
E(:,:,2) =
0 0 0
0 0 0
0 0 0
E(:,:,3) =
0 0 0
0 0 0
0 0 0
E(:,:,1) =
0.5825 0.0349 0.0364
0.5827 0.8854 0.7461
0.8549 0.4077 0.1548
E(:,:,2) =
0 0 0
0 0 0
0 0 0
E(:,:,3) =
0 0 0
0 0 0
0 0 0
E(:,:,1) =
0.5825 0.0349 0.0364
0.5827 0.8854 0.7461
0.8549 0.4077 0.1548
E(:,:,2) =
-1.8443 -0.9107 -0.2228
0.2884 -0.1619 0.2721
-0.9509 -0.4889 -1.1685
E(:,:,3) =
0 0 0
0 0 0
0 0 0
ans =
2
ans =
11
E(:,:,1) =
0.5825 0.0349 0.0364
0.5827 0.8854 0.7461
0.8549 0.4077 0.1548
E(:,:,2) =
-1.8443 -0.9107 -0.2228
0.2884 -0.1619 0.2721
-0.9509 -0.4889 -1.1685
E(:,:,3) =
13 18 19
18 17 13
12 19 13
>>