matlab 随机函数的使用

  • rand ⇒ 0-1 区间上的均匀分布;

0. 状态的保存、seed 值的指定

RNDN_STATE = randn('state');
RND_STATE = rand('state');

randn('state', seed);
rand('state', seed);

1. randi

均匀分布的伪随机整数。

randi,i 表示 integer。

% randi 函数统一左值为 1, 且可以取到右端点
X = randi(imax,sz1,...,szN)
                        % X = randi(5, 2, 3, 4)
                        % 1~5,两行三列,4 stacks
X = randi(imax,sz)
                        % X = randi(5, [2, 3, 4])
                        % 同上,只是第二个参数由可变参数变为一个一维矩阵

当然也可以指定左值:

>> randi([5, 10], 2, 3)
ans =
     9     6     7
     9     7     8

2. unidrnd

R = unidrnd(N)
R = unidrnd(N,m,n,...)
R = unidrnd(N,[m,n,...])

Discrete uniform random numbers,离散型均匀随机数(因为是离散所以是整数);

>> a = unidrnd(1)
a =     1
>> unidrnd(2, 2, 3)

ans =

     1     2     2
     1     1     1
>> a = unidrnd(0)
a =   NaN
>> a = unidrnd([1 2 3; 4 5 0])
a =
1     2     2
2     3   NaN

3. unifrnd

Continuous uniform random numbers

R = unifrnd(A,B)
R = unifrnd(A,B,m,n,...)
R = unifrnd(A,B,[m,n,...])

前两个参数表示区间范围,后续参数表示返回的矩阵的维度;

  • unifrnd(0, 1) ⇒ rand
    • rand(m, n) ⇒ unifrnd(0, 1, m, n)
a = 0; b = 1:5;
r1 = unifrnd(a,b)
r1 =
    0.8147    1.8116    0.3810    3.6535    3.1618

B = repmat(b,5,1);
R = unifrnd(a,B)
R =
    0.0975    0.3152    0.4257    2.6230    3.7887
    0.2785    1.9412    1.2653    0.1428    3.7157
    0.5469    1.9143    2.7472    3.3965    1.9611
    0.9575    0.9708    2.3766    3.7360    3.2774
    0.9649    1.6006    2.8785    2.7149    0.8559
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值