【问题标题】:Matlab code taking a long time to runMatlab代码需要很长时间才能运行
【发布时间】:2015-05-17 15:09:30
【问题描述】:

我有一个 Matlab 代码(来自期刊论文),我正在尝试重新模拟他们的数据。 我一周前执行了代码。我认为代码需要很长时间才能运行。 Matlab 仍然很忙,占用了我 50% 的 CPU。 我想知道该过程是否以代码中某处的一些错误而结束。我的问题是: 当我没有看到任何错误时,我可以确定这个运行过程一切正常吗?我可以等到它完成吗? 有什么方法可以检查现在正在运行的代码部分(不停止执行)? 还是我应该停止该程序并尝试其他方法? 实际上我不想放弃这 1 周,如果你认为一切都很好,我会等到代码停止。 (论文的作者没有回复我的问题,也不知道自然需要多长时间......他们只是提到模拟数据可能需要很长时间)。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    很遗憾,我们无能为力。

    • 当我没有看到任何错误时,我是否可以确定这个正在运行的进程一切正常?

    这几乎就是错误的定义。如果没有报错,说明程序还在运行。

    • 有什么方法可以检查当前正在运行的代码部分(不停止执行)?

    很遗憾,没有。对于这样长时间的执行时间,一个好的开发实践是不时显示一些信息以告知最终用户执行状态。

    但是,如果程序一直在生成文件(例如在迭代模拟中的每一步),您可以在计算机上检查文件是否生成良好,并且生产率或多或少会通知您关于总执行时间。

    对于所有其他问题,由您决定做什么(停止或让它运行)。请注意,一台机器与另一台机器的执行时间可能会有很大差异,因此在作者机器上所花费的时间可能对您来说并不是真正的信息。

    以后,我建议您在一周内做出更快的反应。当你启动一个执行时间长的代码,发现在第一个小时内没有显示,你应该停止它,修改它使其有规律地显示信息,然后重新运行它。最好放松一小时而不是一周。

    最好的,

    【讨论】:

    • 非常感谢你,RAtbert! :) 我想我应该怎么做。实际上一开始我收到了一些消息......但现在没有消息了。在用于创建文件的 for 循环中,我可以看到其中只有一个持续了很长时间。所以我猜有一些错误。
    • 如果它是一个正在运行的脚本,您可以在循环内添加断点。我已经有一段时间没有使用 MatLab 了,但我似乎记得您可以在正在运行的脚本中添加断点。
    • @AndersSchou 不,必须在执行前设置断点,无论是在脚本还是函数中。
    最近更新 更多