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