在Matlab中的伯努利过程

时间:2014-11-04 09:03:40

标签: matlab

T=5;
p=0.3;
A=[randsample(T,1,'true'); zeros(T-1,1)]; %the first element of A is uniformly
                                          %randomly drawn from {1,...,T}

我不知道如何在Matlab中编写这段代码:

%for t=2:T 
    %with probability p A(t)is A(t-1)+1 
    %with probability 1-p A(t) is uniformly randomly drawn from {1,...,T}   
%end

1 个答案:

答案 0 :(得分:1)

您可以使用rand来获得均匀分布的随机变量,使用randi来获取随机整数。查看文档,了解它们的工作原理。

此代码段应该可以帮助您,它会进入您的for循环。我使用rand()<p来概率为p,因为0到1之间均匀分布的随机数的概率p小于p

if rand()<p
    % this happens with probability p
    A(t)=A(t-1)+1
else
    % this happens with probability 1-p
    A(t)=randi(T)
end