How can i create a sequence where the symbols have different probabilities?

2 次查看(过去 30 天)
Hello ,
I have 4 symbols 0,1,2,3 . How can i create a sequence with these symbols where every symbol should have each own probabilty .For example i want the symbols 1,2 to appear with probability q , but in the other hand the symbols 1,4 to appear with probability (1-q)/2.
In my last excersice i was asked to create a sequence where these symbols have the same probability 1/4 so i wrote the code below:
C = floor(rand(1,n)*4);
But i am little confused about this issue .Any help would be valuable.
  1 个评论
Walter Roberson
Walter Roberson 2020-7-9
hint:
probabilities 0.1, 0.23, 0.6, 0.07
random number < 0.1 is the first symbol
random number between 0.1 and 0.1+0.23 is the second symbol
random number between 0.1+0.23 and 0.1+0.23+0.6 is the third symbol...

请先登录,再进行评论。

回答(1 个)

Apoorv Singh
Apoorv Singh 2020-7-9
编辑:Apoorv Singh 2020-7-9

Walter has suggested a nice method. You basically partition the range [0:1] into partitions proportional to the probabilities. As calling rand outputs a decimal in the range [0:1] with equal probability, your problem will be solved.

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by