概述
目录
- 问题描述
- 解决办法
- 测试代码
实验课要求使用matlab构建贝叶斯网络分类器,于是在网上查阅相关资料。找到了这篇博客 利用matlab进行简单的贝叶斯网络构建,按照文中的方式下载toolbox并进行搜索路径的添加。添加完之后出现了两个问题。
问题描述
1.toolbox中的某些函数和matlab内置函数同名
这个问题没有处理,毕竟是一次实验课作业,但没有将该搜索路径永久保存,避免以后使用同名函数出现错误。
2.频繁弹出下图中的对话框
这个问题就影响正常使用了,不管是运行程序还是查看工作区的变量,都会弹出这个窗口。
而且FullBNT中的函数也无法正常使用(按照官网的例子,网络图可视化后只有结点,没有连线)并报错。
几次尝试后,发现不导入FullBNT的搜索路径,就不会出现该问题(如果已经永久保存搜索路径的话,可能需要对该搜索路径进行删除,个人猜测,如有错误,请评论区指正)。打开draw_graph.m这个文件后也发现,这个函数的最后一次修改在2000年,函数中使用的语法在2021版本的编辑器中打开会标红,估计是代码编写时间太久远,造成了和编译器的兼容出现了些问题。(官方文档的最后一次更新也在久远的2007年)
解决办法
大概搞清问题后,就去找版本更新的toolbox。感谢这位网友的指路,找到了最近更新在2014年的BNT,按照第一篇博客中的方法将这个新的BNT解压缩,移动文件位置,并添加搜索路径就可以了。
以下是具体步骤:
(1) 解压bnt-master.zip,将整个目录bnt-master复制到MATLAB的安装目录的TOOLBOX目录下(我的是 D:matlab2021atoolbox)
(2) 将BNT添加到matlab的搜索路径中
addpath(genpath(‘D:matlab2021atoolboxbnt-master’))
上述的两个问题都得到了解决,但暂时只进行了draw_graph()函数的使用,不知道后续是否会出现其他问题。
测试代码
注意修改搜索路径
clc
clear
close all
addpath(genpath('D:matlab2021atoolboxbnt-master'));
N = 4;
dag = zeros(N, N);
C = 1; S = 2; R = 3; W = 4;
dag(C, [S R]) = 1;
dag([S R], W) = 1;
draw_graph(dag);
感谢上述所有网友的分享。
最后
以上就是无辜唇膏为你收集整理的向matlab2021a中导入FullBNT出现的问题,“无效表达式。请检查缺失的乘法运算符、缺失或不对称的分隔符或者其他语法错误。要构造矩阵,请使用方括号而不是圆括号。”问题描述解决办法测试代码的全部内容,希望文章能够帮你解决向matlab2021a中导入FullBNT出现的问题,“无效表达式。请检查缺失的乘法运算符、缺失或不对称的分隔符或者其他语法错误。要构造矩阵,请使用方括号而不是圆括号。”问题描述解决办法测试代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复