【问题标题】:Calculate time of script execution previously with Matlab以前用 Matlab 计算脚本执行的时间
【发布时间】:2013-07-12 07:15:17
【问题描述】:

早上好,

我有一个关于在 Matlab 上执行脚本的时间的问题。是否可以预先知道在运行脚本之前花费了多长时间(例如估计的时间)?我知道使用 tic 和 toc 命令等可以知道最后的时间,但我不知道之前是否可以知道。

提前致谢,

【问题讨论】:

  • 您是在问是否可以预测脚本需要多长时间才能执行?我敢肯定没有命令这样做!您或许能够根据之前在特定大小数据集上的运行得出一些估计值?
  • 是的,这就是我的意思! :) 谢谢!我在网上找不到任何关于此的信息!
  • 那么我的建议是:设置一个进程,在各种大小的数据上自动运行脚本多次。然后,您可以查看您的结果并查看它是如何扩展的,也许可以得出一个粗略的公式,然后您可以使用该公式根据大小生成估计值。但是,如果它不能以平滑的方式扩展,您可能只能将“在此大小的数据上进行其他运行的平均执行时间”作为估计值。
  • 不,MATLAB 无法为您进行复杂度分析。事实上,你所要求的比复杂性分析还要难。
  • 我猜matlab不能为你做,但你肯定可以自己进行复杂度分析。关于这个主题有很多要阅读的内容(并不难找到),但下面我试图就如何应用它给你一些实用的建议。

标签: matlab time


【解决方案1】:

估计您的计算需要多长时间并不难。 您已经知道如何使用tictoc 记录计算时间,所以现在您可以这样做了:

  1. 从小规模测试开始(例如,n=1)并记录计算时间
  2. n与常数k相乘(为了方便计算,我一般选择2或10),记录计算时间
  3. 继续与 n 相乘,直到找到一致的关系:“如果我将输入大小与 k 相乘,我的计算时间会发生这样的变化......”

现在您可以通过以下方式推断您的估计计算时间:

  • 计算需要将最大小规模示例的输入大小乘以多少次才能得到实际数据大小
  • 将你多次找到的一致关系应用于你最大的小规模示例的计算时间

当然,这与一些常识很好地结合在一起,例如,如果您执行某些操作 t 次,它们将花费大约 t 次的时间。当您必须执行某项计算一百万次时,可以轻松使用它。在一分钟左右后中断循环,如果它仍然在前十次计算中你可能想放弃!

【讨论】:

  • 请注意,对于非常小的计算,开销和低复杂度项实际上可能占主导地位。因此,仅仅尝试n=[1 2 4] 通常是不够的,通常我会尝试使最大的小规模示例至少占全规模示例的 1%。
猜你喜欢
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
相关资源
最近更新 更多