码迷,mamicode.com
首页 > 其他好文 > 详细

使用MATLAB贝叶斯工具箱(BNT),进行吉布斯采样(Gibbs Sampling)之前需要做的编译工作

时间:2015-08-11 23:10:06      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:

  使用BNT(Bayesian Networks Toolbox)进行推断时,内置了吉布斯采样算法(即gibbs_sampling_inf_engine),但是如果调用这个引擎做推断会报错。报错内容大概是compute_posterior这个函数没有找到,然后进入..\@gibbs_sampling_inf_engine\private这个目录可以发现一个叫compute_posterior.c的文件,并没有.m文件,MATLAB当然不能调用C语言文件,所以需要对C文件进行编译,编译成为MATLAB可以调用的MEX文件,具体的方法为:

  1)使MATLAB的current folder进入 ..\@gibbs_sampling_inf_engine\private这个文件夹

  2)>>mex compute_posterior.c

  3)>>mex sample_single_discrete.c

  编译完了之后,就会生成compute_posterior.mexw64和sample_single_discrete.mexw64两个文件(后面的位数根据操作系统的位数不同而改变,本人电脑系统64位所以是64)。然后需要重新导入matlab的search path,进入set path中,如果MATLAB中没有额外的工具箱的话,可以先使用Default还原为默认,然后使用Add with Subfolders,添加整个贝叶斯工具箱。如果有其他工具箱的话,就不要还原了,可以remove原来的BNT文件夹,然后再Add with Subfolders新的工具箱。

  添加好了就save一下,然后吉布斯采样的函数就可以使用啦~

使用MATLAB贝叶斯工具箱(BNT),进行吉布斯采样(Gibbs Sampling)之前需要做的编译工作

标签:

原文地址:http://www.cnblogs.com/liuyifei/p/bnt_gibbs_trick.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!