MATLAB:如何在3维中绘制概率分布? (涉及贝叶斯规则)

时间:2017-04-18 01:39:19

标签: matlab multidimensional-array bayesian

为了给你一些背景信息,我试图找出使用贝叶斯规则的研究问题的最佳参数,我的问题与生成这些参数的先验概率分布有关。

假设我的两个参数是A和B.我知道A的先验分布看起来像Gamma分布,而我对B的分布看起来像归一化的高斯分布。目标是在x和y轴上绘制这些分布,然后在z轴上绘制联合概率P(A,B)= P(A)* P(B)。如果我能做到这一点,那么我可以确定A和B的哪些值最有可能解决我的问题。

所以我输入MATLAB

A = linspace(-50,50,1000);
B = A;
gamma = gampdf(A,5,5);
norm = normpdf(B,0,5);
[A B] = meshgrid(A,B);
Z = gamma'*norm;
surf(A,B,Z)

当我这样做时,我明白了:

enter image description here

旋转这可能会给我一些我正在寻找的东西,但由于它全是黑色的,我无法确切地说出来。

有没有办法可以让它更容易区分并使网格工作? (我猜测网格不起作用,因为我的Z不是A和B的函数,而是伽马和规范的函数)。

任何帮助都会非常感激,因为我完全乐于接受其他方法。

1 个答案:

答案 0 :(得分:1)

网格线非常密集(每个维度有1000行),它只是显示为黑色。使用set关闭网格线:

h = surf(A,B,Z);
set(h,'linestyle','none');