MATLAB中常用的几种随机数生成函数

MATLAB中常用的几种随机数生成函数1 rand 函数的用法命令 rand N rand M N 等对于 rand N 通过 helprand 得到的解释是 R rand N returnsanN by Nmatrixconta 0 1

a=rand(1,10); b=rand(1,1000); c=rand(1,); mean(a) ans =0.5890 mean(b) ans =0.4900 mean(c) ans =0.5000 var(a) ans =0.0634 var(b) ans =0.0834 var(c) ans =0.0833
%%在区间[10,100]服从标准均匀分布,其期望为55,方差为90^2/12=675 r=10+90.*rand(1,); mean(r) ans =54.9954 var(r) ans =673.8957
r1=randi(10,2,5)%生成数据在1:10之间的2*5矩阵 r1 = 7 1 3 7 5 6 6 10 5 1 >> r2=randi([10,100],2,5)%生成数据在10:100之间的2*5矩阵 r2 = 93 49 51 89 63 53 95 98 36 18

在进行通信系统仿真时,可以利用randi来生成0,1比特序列。如msg_bit=randi([0,1],1,length_tran_msg};

%生成一组服从(0,1)标准正态分布的序列 r=randn(1,); >> mean(r)%均值 ans = -0.0015 >> var(r)%方差 ans = 0.9975 hist(r,1000)%将数据分成1000个组并进行绘制

这里写图片描述

%前后2次调用rand(1,5)生成不同的数据 rand(1,5) ans = 0.8147 0.9058 0.1270 0.9134 0.6324 rand(1,5) ans = 0.0975 0.2785 0.5469 0.9575 0.9649

而如果你想使得随机数生成命令返回默认状态,只需在随机数据生成命令前加上:

rng('default');

即可。

2)如果想使得生成的随机数据每次都相同,则可以将随机数生成环境保存下来

s=rng;%保存环境 i1=randi(10,1,5) i1 = 2 5 10 8 10 rng(s)%调用之前的环境,则下次生成相同的数据 i2=randi(10,1,5) i2 = 2 5 10 8 10 i3=randi(10,1,5) i3 = 7 1 9 10 7 rng(s) i3=randi(10,1,5) i3 = 2 5 10 8 10

3)若想依据当前的时间来生成一个种子,进而生成每次不同的随机数据,可以用以下命令:

rng('shuffle'); randi(10,1,5) ans = 9 7 9 1 4 randi(10,1,5) ans = 2 8 3 10 1
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220857.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午7:29
下一篇 2026年3月17日 下午7:29


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号