【问题标题】:Remove progress bar from published document in MATLAB从 MATLAB 中的已发布文档中删除进度条
【发布时间】:2010-12-13 04:51:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: matlab progress-bar publishing


    【解决方案1】:

    另一个稍微通用的选项(受 Mike Katz 的回复启发),适用于您不希望(或明确希望)包含在报告中的任何类型的内容。

    在你的模块/函数中

    try
       inPublishMode = evalin('base', 'inPublish');
    catch
       inPublishMode = false;
    end
    

    您现在可以在运行测试之前从工作区设置 inPublish 变量,并将可选代码包装在条件语句中。

    if inPublishMode
        % do something
    end
    

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

    【讨论】:

      【解决方案2】:

      我假设您正在使用 WAITBAR 函数来生成进度条,而您的函数中只有其中一个等待条。

      在发布文件之前预先创建等待栏:

      h = waitbar(0);
      

      然后让PUBLISH函数看不到waitbar:

      set(h,'HandleVisibility','off')
      

      在代码中使用等待栏的地方,您必须通过再次引用它来指定要重用隐藏的等待栏,句柄为h

      waitbar(newPercentage,h);

      请参阅等待栏的功能参考页面以获得更多帮助。

      【讨论】:

      • 听起来不错,但似乎对我不起作用。等待栏仍然出现...将调查
      • 如果我也将 'Visible' 设置为 off 也可以,这并不完美,但可以接受
      【解决方案3】:

      AFAIK 无法从已发布的文档中排除部分内容。

      也许您可以做的是在进度条代码周围输出一个独特的模式(BEGIN/END),然后您将解析 html 文件并使用一些脚本删除这些部分。

      【讨论】:

      • 我想这会起作用,但我宁愿避免额外的步骤。我会继续寻找更优雅的解决方案,但谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      • 2019-03-20
      • 2014-08-05
      • 1970-01-01
      • 2021-08-18
      相关资源
      最近更新 更多