求教高手,如何用matlab产生一八位的0、1数列作为信源?我大概知道好像是用randint,可是具体怎么用这个函数?x=randint(8)不可以么?
本人新手,多谢大家帮忙!!!!
1、首先启动matlab,新建一个函数文件。
2、在弹出的编辑窗口中输入代码。
3、保存该函数,注意文件命名要与函数名相同。
4、文件保存的位置应该与搜索路径相同,否则使用该函数时将会因为找不到该函数文件而出错。
5、最后再命令行窗口中输入命令,get01(m,n)就可以产生m行n列的随机0-1矩阵了。
一,matlab中生成随机数主要有三个函数:rand, randn,randi
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型随机矩阵
示例验证:
均值分布
概率分布图:
y=rand(1,3000000);
hist(y,2000);
散点图:
y=rand(1,3000000);
plot(y)
二、正常情况下每次调用相同指令例如rand生成的伪随机数是不同的,
例如:
rand(1,3)
rand(1,3)
matlab的输出为:
ans =
0.139043482536049 0.734007633362635 0.194791464843949
ans =
0.602204766324215 0.937923745019422 0.149285414707192