【问题标题】:waitbar matlab before start a standalone script启动独立脚本之前的waitbar matlab
【发布时间】:2016-08-04 13:36:10
【问题描述】:

我在 Matlab 中做了一个独立的应用程序,它可以工作。唯一的问题是,当我启动应用程序时,开始向用户询问一些文件需要一些时间(这是程序必须做的第一个想法)。用户不知道程序是否在工作,因为屏幕上没有消息,也没有工作进度的符号。 我的想法是显示一个等待栏,直到出现向用户询问文件的窗口。

我该怎么做?是否可以在循环外使用等待栏?

脚本开始如下:

close all
clear all

[filename,pathname] = uigetfile({'*.xlsx'},'Opening File','C:\');

不知道为什么,打开选择文件的窗口需要一些时间。

【问题讨论】:

  • 由于您没有在 start 和 uigetfile() 之间编写任何代码,我认为服务员也不会有什么好处。等待栏进度由用户更新,您需要执行的步骤并不多。只需通知用户,例如终端打印输出“正在清除...”或某些使用消息框。除此之外,如果您需要清除所有内容,则有问题。您应该尝试将相关代码包装到函数中,然后使用结构(或独立变量)将相关信息输入函数。这也会让您考虑要存储哪些信息。

标签: matlab progress-bar


【解决方案1】:

启动和文件选择输入出现之间的时间很可能是由于加载 MCR 所花费的时间。您可以在编译中添加启动画面。

如果最终用户从命令行运行,请将您的 exe 包装在系统/shell 中,该系统/shell 会写入应用程序正在启动的命令窗口。

【讨论】:

    【解决方案2】:

    您的问题很可能是使用了clear all。这使得 MATLAB 删除所有变量(范围内的、全局的和持久的),并从内存中编译脚本,迫使它重新编译并再次加载所有内容。

    如果您的目的是清除当前范围内的所有变量,您应该能够通过仅运行 clear 来提高脚本的初始速度。

    如果您使用clear var1 var2 ... 指定要清除的变量,则可以实现更快的速度

    【讨论】:

      猜你喜欢
      • 2011-10-29
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多