从MATLAB中的已发布文档中删除进度条

时间:2009-11-04 21:31:43

标签: matlab progress-bar publishing

我正在使用MATLAB的发布功能来生成我正在运行的一些分析的快速报告。由于分析非常耗时,我添加了一个进度条来跟踪剩余时间。问题是我希望这个进度条不会出现在我的报告中。

有没有办法让MATLAB不在已发布的文档中引入一些内容。或者,有没有办法让我知道我目前处于发布模式,所以我可以在这些情况下跳过进度条?

编辑: 已经有几个解决方案,但我更喜欢自动化的东西,在发布之前不需要工作区中的额外步骤。还有其他技巧吗?

3 个答案:

答案 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

仍然不是完全令人满意,但它是袋中的另一个工具。