matlab中产生随机数的函数

1. randsrc

无参数形式,随机输出-1或1;

randsrc(m,n);

randsrc(m);

输出m*n阶或m*m阶矩阵,元素为随机出现的-1或1,概率均为1/2;


2. rand

而rand是随机产生0——1中某一数


3. randperm

p = randperm(n)返回从0到n随机分布的整数序列,长度为n。


p = randperm(n,k) 返回一行从1到n的整数中的k个,而且这k个数也是不相同的。

randperm返回不重复的重排采样(k-permutations)。

如果需要重复多次出现,可用:randi(n,1,k)。



4. intersect

intersect(A,B),A,B为向量,返回A,B中相同的元素,并且排序后输出。

intersect(A,B,'rows'),A,B需为相同列的矩阵,返回他们相同的行。

[c, ia, ib] = intersect(...);将相同元素的索引index输出到ia,ib中。


5. cumsum

B = cumsum(X);求向量X中元素的累积和,如果X为矩阵,则按列求累积量.

B = cumsum(X,dim);按dim给定的维度求累积量。

例如:B = cumsum(X,1)返回的是沿着第一维(各列)的累加和,cumsum(X,2)返回的是沿着第二维(各行)的累加和。


相关函数:cumprod, prod, sum

sum 函数

eg.


6. rectpuls

rectpuls(T);以零为中心宽度为1的方波,区间为左闭右开区间,即rectpuls(-0.5) = 1;而rectpuls(0.5) = 0;

rectpuls(T,W) generates a rectangle of width W.


7. randsrc

out = randsrc

out = randsrc(m)

out = randsrc(m,n)

out = randsrc(m,n,alphabet)

out = randsrc(m,n,[alphabet; prob])

out = randsrc(m,n,...,state);

无参数,则随机输出-1或1。

有参数,输出m*m或m*n矩阵,按照1/2的概率随机分布-1和1,如果有alphabet向量参数,则按照同样的概率输出由该参数确定的数字(alphabet向量中的每个项都以相等的概率出现)。

再有prob参数,确定每一个数字的出现概率。


8. randint

out = randint

out = randint(m)

out = randint(m,n)

out = randint(m,n,rg)

out = randint(m,n,rg,state)

描述同上。但是无参数的话随机输出0或1。有参数,按照同样概率输出m*m或m*n阶矩阵。如有rg参数,则按照同样概率随机输出[0,rg-1](rg>0)或[rg+1,0](rg<0)或[min,max](rg为两个元素的向量)之间的数字。



猜你喜欢

转载自blog.csdn.net/li975242487/article/details/80565761