【问题标题】:How to visualize Markov Chain transition probabilities in MATLAB?如何在 MATLAB 中可视化马尔可夫链转移概率?
【发布时间】:2020-05-21 16:19:17
【问题描述】:

我想使用有向图来可视化我的马尔可夫链。我正在使用以下代码行:

mc = dtmc(TPM,'StateNames',namesStates);
graphplot(mc,'ColorNodes',true,'ColorEdges',true);

其中namesStates 是一个元胞数组,其中包含我的 MC 的每个节点的名称(字符串)。

由于概率彼此如此接近,我想可视化有向图每条边的概率或转换率。有可能吗?

编辑:

这是我正在使用的 TPM:

0,941033925686591   7,34322220590395e-05    0,000146864444118079    0,0220296666177119  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
0,000220296666177119    0,926053752386547   0,000293728888236158    0   0,0367161110295198  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
0,000367161110295198    0,000440593332354237    0,903730356880599   0   0   0,0587457776472316  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
7,34322220590395e-05    0   0   0,940960493464532   7,34322220590395e-05    0,000146864444118079    0,0220296666177119  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0   0   0   0   0   0
0   7,34322220590395e-05    0   0,000220296666177119    0,925980320164488   0,000293728888236158    0   0,0367161110295198  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0   0   0   0   0
0   0   7,34322220590395e-05    0,000367161110295198    0,000440593332354237    0,903656924658540   0   0   0,0587457776472316  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0   0   0   0
0   0   0   7,34322220590395e-05    0   0   0,962990160082244   7,34322220590395e-05    0,000146864444118079    0   0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0   0   0
0   0   0   0   7,34322220590395e-05    0   0,000220296666177119    0,962696431194008   0,000293728888236158    0   0   0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0   0
0   0   0   0   0   7,34322220590395e-05    0,000367161110295198    0,000440593332354237    0,962402702305772   0   0   0   0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0   0
0,00367161110295198 0   0   0   0   0   0   0   0   0,937362314583639   7,34322220590395e-05    0,000146864444118079    0,0220296666177119  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0   0
0   0,00367161110295198 0   0   0   0   0   0   0   0,000220296666177119    0,922382141283595   0,000293728888236158    0   0,0367161110295198  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0   0
0   0   0,00367161110295198 0   0   0   0   0   0   0,000367161110295198    0,000440593332354237    0,900058745777647   0   0   0,0587457776472316  0   0   0   0   0   0,0367161110295198  0   0   0   0   0   0
0   0   0   0,00367161110295198 0   0   0   0   0   3,85519165809957e-05    0   0   0,937323762667058   7,34322220590395e-05    0,000146864444118079    0,0220296666177119  0   0   0   0   0   0,0367161110295198  0   0   0   0   0
0   0   0   0   0,00367161110295198 0   0   0   0   0   5,07906202575023e-05    0   0,000220296666177119    0,922331350663338   0,000293728888236158    0   0,0367161110295198  0   0   0   0   0   0,0367161110295198  0   0   0   0
0   0   0   0   0   0,00367161110295198 0   0   0   0   0   5,87457776472316e-05    0,000367161110295198    0,000440593332354237    0,900000000000000   0   0   0,0587457776472316  0   0   0   0   0   0,0367161110295198  0   0   0
0   0   0   0   0   0   0,00367161110295198 0   0   0   0   0   3,85519165809957e-05    0   0   0,959353429284770   7,34322220590395e-05    0,000146864444118079    0   0   0   0   0   0   0,0367161110295198  0   0
0   0   0   0   0   0   0   0,00367161110295198 0   0   0   0   0   5,07906202575023e-05    0   0,000220296666177119    0,959047461692858   0,000293728888236158    0   0   0   0   0   0   0   0,0367161110295198  0
0   0   0   0   0   0   0   0   0,00367161110295198 0   0   0   0   0   5,87457776472316e-05    0,000367161110295198    0,000440593332354237    0,958745777647232   0   0   0   0   0   0   0   0   0,0367161110295198
0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   0   0   0   0,970406814510207   7,34322220590395e-05    0,000146864444118079    0,0220296666177119  0   0   0   0   0
0   0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   0   0   0,000220296666177119    0,955426641210163   0,000293728888236158    0   0,0367161110295198  0   0   0   0
0   0   0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   0   0,000367161110295198    0,000440593332354237    0,933103245704215   0   0   0,0587457776472316  0   0   0
0   0   0   0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   4,40593332354237e-05    0   0   0,970362755176972   7,34322220590395e-05    0,000146864444118079    0,0220296666177119  0   0
0   0   0   0   0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   5,50741665442796e-05    0   0,000220296666177119    0,955371567043619   0,000293728888236158    0   0,0367161110295198  0
0   0   0   0   0   0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   6,16830665295932e-05    0,000367161110295198    0,000440593332354237    0,933041562637686   0   0   0,0587457776472316
0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   4,40593332354237e-05    0   0   0,992392421794684   7,34322220590395e-05    0,000146864444118079
0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   5,50741665442796e-05    0   0,000220296666177119    0,992087678073139   0,000293728888236158
0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0,00734322220590395 0   0   0   0   0   6,16830665295932e-05    0,000367161110295198    0,000440593332354237    0,991787340284917

代替:

mc = dtmc(TPM,'StateNames',namesStates);

我们可以做到:

mc = dtmc(TPM);

【问题讨论】:

  • 这是来自stackoverflow.com/q/59950322/8239061TPM 吗?或者您可以发布minimal reproducible example 吗?目前,SO 志愿者没有 namesStatesTPM 可以使用。
  • 使用链接帖子中的 TPM,我可以使用您的代码在 MATLAB R2019a 中可视化 mc = dtmc(TPM)。情节适合你吗?你有错误吗?
  • @SecretAgentMan 我已经编辑了我的问题:不要打扰自己 namesStates 这并不重要,它只是一个带有节点名称的单元格数组(而不是我更喜欢编号的节点有国家的名字)。我添加了一个 TPM
  • 使用TPM here 我已经能够使用mc = dtmc(TPM)graphplot(mc,'ColorNodes',true,'ColorEdges',true); 并且一切顺利。见上面我的cmets。你得到什么输出?你得到的输出有什么问题?
  • 输出没有问题,我在问我是否可以在我的有向图中添加从一个节点到另一个节点的概率

标签: matlab matlab-figure markov-chains


【解决方案1】:

documentation 中,您可以找到“LabelEdges”参数,当设置为 true 时也会显示概率。

graphplot(mc,'ColorNodes',true,'ColorEdges',true,'LabelEdges',true);

【讨论】:

  • 谢谢。我们可以改变有向图右侧的条形(转换概率)的比例吗?
  • 无法回答您的问题。
  • @Afo,如果你可以访问颜色栏的属性,你可能可以直接控制它。 Possibly relevant posts for this.
猜你喜欢
  • 2018-04-01
  • 2023-03-14
  • 2018-03-24
  • 1970-01-01
  • 2014-10-06
  • 1970-01-01
  • 2013-01-02
  • 2019-02-08
  • 2019-02-07
相关资源
最近更新 更多