matlab - 默认的“图例”功能被意外覆盖
问题描述
我正在使用 BNT-toolbox,这是一个用 matlab 编写的大型库,用于在贝叶斯网络中进行推理。
我不得不将此工具箱添加到 MATLAB 的路径中。但是在这样做之后,我不能再使用默认legend
功能了。
我认为这个库可能有他自己的legend
功能,覆盖了默认的。如何手动告诉 MATLAB 我想要原始工具箱而不是新工具箱中的工具箱?
在 Matlab 2018b 和 2020a 中尝试过
编辑:重现它:
当我运行测试脚本时,它会显示线条和图例。
https://github.com/bayesnet/bnt,这就是我说的工具箱。我下载了它,解压缩,然后使用Home -> Set path -> add folder with subfolder添加到我的路径中
当我现在运行脚本时,它显示的是线条而不是图例。
注意:当我尝试另一种绘图方式时(参见 testscript 2),图例再次显示出来。所以这是一个有效的“解决方法”
Testscript1:(位置:C:\Users\TomDe\Downloads\FullBNT-1.0.7\bnt\own\testscript1.m)
x = linspace(0,pi);
y1 = cos(x);
plot(x,y1)
hold on
y2 = cos(2*x);
plot(x,y2)
legend('cos(x)','cos(2x)')
测试脚本2
% Some other code
tiledlayout(2,1)
nexttile
plot(inputPath)
hold on
plot(sensorPath)
plot(inputInference)
hold off
title('The Input sequence and sensor readings ')
legend('Path', 'sensor', 'Inference')
解决方案
您可以使用which函数检查是否确实如此:
>> which legend -all
掩盖 MATLAB 自己的函数通常是个坏主意。我强烈建议你首先避免这个问题。创建一个MATLAB 包并将此工具箱的源代码放入其中。
仅出于演示目的,我将展示如何调用 real legend.m
:
>> wd = pwd;
>> cd 'C:\Program Files\MATLAB\R2020a\toolbox\matlab\scribe\'
>> legend(...)
>> cd(wd);
这是 MATLAB R2020a 安装中文件的位置。
推荐阅读
- c# - c#打印 - 当字符串大小未知时如何定义矩形高度
- ios - 在 Xcode 10.1 中运行 XCtestCase 时出错
- python - Python Itertools 在两个列表中。从每个列表中获取超过 1 个值
- r - R来自计数表的多个饼图?
- ios - 我们可以在 macOS 中从 Oracle SQL Developer 应用程序查看 Core 数据 SQLite 文件吗?
- asp.net-core - 在局部视图中调用 Razor 组件
- ruby-on-rails - socket() 在连接到上游动作电缆 Ruby on Rails 时失败(24:打开的文件太多)
- flutter - Flutter:热重载后被送回初始页面
- vue.js - 如何在 b-table 中使用 v-select 标签和 v-select 代码用于后端
- reactjs - 两种道具如何正确使用HOC