我是靠谱客的博主 英俊微笑,最近开发中收集的这篇文章主要介绍matlab 中randn randi rand randerr、randint、randsrc、wgn函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1,rand 生成均匀分布的伪随机数。分布在(0~1)之间
主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数
rand(m,n,‘double’)生成指定精度的均匀分布的伪随机数,参数还可以
是’single’
rand(RandStream,m,n)利用指定的RandStream(我理解为随机种子)生成伪
随机数

2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)
主要语法:和上面一样

3, randi 生成均匀分布的伪随机整数
主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数
randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵
r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵
4、randerr函数

此函数用于产生误比特图样。

out=randerr(m):产生一个m*m维的二进制矩阵,矩阵中的每一行有且只有一个非零元素,且非零元素在每一行的位置是随机的。

out=randerr(m,n):产生一个m*n维的二进制矩阵,矩阵中的每一行有且只有一个非零元素,且非零元素在每一行的位置是随机的。

out=randerr(m,n,errors):产生一个m*n维的二进制矩阵,参数errors可以是一个标量、向量或者只有两行的矩阵。

当errors是一个标量时,产生矩阵中的每一行1的个数等于errors;

当errors是一个向量时,产生矩阵每一行1的个数由errors的相应元素指定;

当errors是一个只有两行的矩阵时,第一行指定可能出现1的个数,第二行说明出现1的概率,第二行所有元素和为1。第二行概率前加点即.25。

例如:

>> clear all;
>> out=randerr(4,5,[0 3])
out =
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
>> out2=randerr(5,6,[0 2;.56 .44])
out2 =
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0

5.randint函数

该函数用于产生均匀分布的随机整数矩阵

out=randint:产生一个不是1就是0的标量,且出现概率一样。

out=randint(m):产生一个m*m的整数矩阵,矩阵中的元素为等概率出现的0和1。

out=ranfdint(m,n):产生一个m*n的整数矩阵,矩阵中的元素为等概率出现的0和1。

out=ranfdint(m,n,rg):产生一个m*n的整数矩阵,如果rg为0,则产生0矩阵,否则矩阵中的元素是rg所设定范围内整数的均匀分布。此范围为:

[0,rg-1],当rg为正整数时;

[rg+1,0],当rg为负整数时;

从min到max,包括min和max,为rg=[min,max]或[min,max]。

6.randsrc函数

根据给定的数字产生一个随机符号矩阵。

out=randsrc:产生一个随机标量,这个标量是1或-1,概率相等。

out=randscr(m):产生一个m*m的矩阵,元素为等概率出现的1或-1。

out=randscr(m,n):产生一个m*n的矩阵,元素为等概率出现的1或-1。

out=randscr(m,n,alphabet):产生一个m*n的矩阵,矩阵的元素为alphabet中所指定的数据符号,等概率出现且相互独立。

out=randscr(m,n,[alphabet;prob]):产生一个m*n的矩阵,矩阵的元素为alphabet中所指定的数据符号,概率出现由prob决定,prob中所有元素和为1。

例如:

>> out=randsrc(7,10,[-1 3 5 -2])
out =
-1
5
-1
3
-2
-2
-2
5
-2
-1
-2
-1
-2
-2
3
-1
3
5
5
-2
3
-1
3
5
5
5
5
3
-2
-2
5
3
-1
5
-1
3
-1
-1
-1
-2
5
-2
3
-2
-1
-1
5
-1
3
-1
-2
3
5
3
5
3
3
-2
-1
3
-2
-2
3
-2
-2
-1
5
-1
-2
3
>>
out=randsrc(5,4,[-1 3 5 -2;.25 .25 .40 .10])
out =
5
-1
-1
3
3
-1
5
-1
-2
5
5
-1
-1
5
3
-1
3
5
5
-1

7.wgn函数

该函数用于产生高斯白噪声,单位可以是分贝瓦(dBW),分贝毫瓦(dBm)其中1W=0dBW=30dB,加性高斯白噪声表现为信号围绕平均值的一种随机波动过程。其均值为0,方差变现为噪声功率的大小。

y=wgn(m,n,p):产生m*n的白噪声矩阵,p表示输出信号y的功率(dBW),负载的电阻为1。

y=wgn(m,n,p,imp):产生m*n的白噪声矩阵,功率(dBW)为p,指定负载的电阻为imp,单位欧姆。

例如:

>> y1=wgn(5,6,0)
y1 =
-1.1564
-0.0200
-0.7145
-0.8479
-1.2571
-2.3299
-0.5336
-0.0348
1.3514
-1.1201
-0.8655
-1.4491
-2.0026
-0.7982
-0.2248
2.5260
-0.1765
0.3335
0.9642
1.0187
-0.5890
1.6555
0.7914
0.3914
0.5201
-0.1332
-0.2938
0.3075
-1.3320
0.4517
>> y2=wgn(2,6,10)
y2 =
-0.4120
-1.5057
-4.3061
-2.6839
1.7481
-3.5343
0.5809
2.7260
1.4389
-1.0590
3.2859
3.9866

原文链接:https://blog.csdn.net/imwtj123/article/details/83002818
原文链接:https://www.cnblogs.com/sddai/p/5406182.html

最后

以上就是英俊微笑为你收集整理的matlab 中randn randi rand randerr、randint、randsrc、wgn函数的全部内容,希望文章能够帮你解决matlab 中randn randi rand randerr、randint、randsrc、wgn函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部