首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义概率分布的Matlab仿真

自定义概率分布的Matlab仿真
EN

Stack Overflow用户
提问于 2013-09-28 20:35:07
回答 1查看 576关注 0票数 2

我尝试模拟以下分布:

代码语言:javascript
复制
 a   |  0   |  1   |  7   |  11  |  13 
-----------------------------------------
p(a) | 0.34 | 0.02 | 0.24 | 0.29 | 0.11

我已经模拟了一个类似的问题:四种类型的球,概率分别为0.3,0.1,0.4和0.2。我创建了一个向量F = [0 0.3 0.4 0.8 1],并使用repmat将其增加了1000行。然后,我将其与使用相同的repmat方法增长的1000个随机数的列向量进行了比较。我比较了这两个,计算了矩阵的和向量,并计算了差值以获得频率(例如[301 117 386 196])。。

但对于目前的发行版,我不知道如何创建初始矩阵F,也不知道是否可以使用之前使用的相同方法。

我需要答案是“矢量化的”,所以没有(forwhileif)循环。

This question on math.stackexchange

EN

回答 1

Stack Overflow用户

发布于 2013-09-28 20:47:55

如果您创建以下数组会怎样:

代码语言:javascript
复制
largeNumber = 1000000;
a=repmat( [0], 1, largeNumber*0.34 );
b=repmat( [1], 1, largeNumber*0.02 );
% ...
e=repmat( [13], 1, largeNumber*0.11 );

然后,将所有这些数组连接起来(以获得单个数组,其中条目用其对应的概率表示),对它们进行混洗,并提取第一个N元素,以获得从您的分布中提取的N-dimensional向量。

编辑:当然,this答案是要走的路。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19067014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档