我正在使用 MATLAB 的发布功能来生成我正在运行的一些分析的快速报告。由于分析非常耗时,我添加了一个进度条来跟踪剩余时间。问题是我不希望这个进度条出现在我的报告中。
有没有办法阻止 MATLAB 在已发布的文档中引入某些内容。或者,有没有办法让我知道我当前处于发布模式,所以在这些情况下我可以跳过进度条?
编辑:已经有几个解决方案,但我更喜欢在发布前不需要在工作区中执行额外步骤的自动解决方案。还有什么技巧吗?
我正在使用 MATLAB 的发布功能来生成我正在运行的一些分析的快速报告。由于分析非常耗时,我添加了一个进度条来跟踪剩余时间。问题是我不希望这个进度条出现在我的报告中。
有没有办法阻止 MATLAB 在已发布的文档中引入某些内容。或者,有没有办法让我知道我当前处于发布模式,所以在这些情况下我可以跳过进度条?
编辑:已经有几个解决方案,但我更喜欢在发布前不需要在工作区中执行额外步骤的自动解决方案。还有什么技巧吗?
AFAIK 无法从已发布的文档中排除部分内容。
也许您可以做的是在进度条代码周围输出一个独特的模式(BEGIN/END),然后您将解析 html 文件并使用一些脚本删除这些部分。
我假设您正在使用该WAITBAR
函数来生成进度条,并且您的函数中只有这些等待条之一。
在发布文件之前,请预先创建等待栏:
h = waitbar(0);
然后使等待栏对PUBLISH
函数不可见:
set(h,'HandleVisibility','off')
在代码中使用等待栏的地方,您必须通过再次使用句柄来指定要重用隐藏的等待栏h
:
等待栏(新百分比,h);
有关更多帮助,请参阅等待栏的功能参考页面。
另一个稍微通用的选项(受 Mike Katz 的回复启发),适用于您不希望(或明确希望)包含在报告中的任何类型的内容。
在您的模块/功能中
try
inPublishMode = evalin('base', 'inPublish');
catch
inPublishMode = false;
end
您现在可以在运行测试之前从工作区设置 inPublish 变量,并将可选代码包装在条件语句中。
if inPublishMode
% do something
end
仍然不能完全令人满意,但它是包里的另一个工具。