跟踪 MATLAB 标准库函数的进度

Tracking progress of MATLAB standard library functions

一些 MATLAB 函数(如求解器)包括允许定期记录函数进度的选项。例如,optimset 对应 fminsearch。对于标准库中的其他函数,是否有任何基准测试进度的方法(甚至在串行设置中继续执行)?

例如,使用足够大的 N 调用 zeros(N) 将花费 很长时间。 除了在 tic/toc 排序中重复调用函数有办法了解问题随着 N 的不同输入而缩放的方式,是否有评估函数调用进度的方法?一般来说,有没有办法跟踪内置函数的进度?

运行 脚本或函数本身无法完全按照您的要求进行操作。您可以添加很多 tic/tocs & disp 语句来跟踪进度...但这可能很乏味。

但是,如果您的目标是确定缩放不佳的缓慢点和区域,那么您应该使用 Matlab's Profiler

Profiling is a way to measure where a program spends time. After you identify which functions are consuming the most time, you can evaluate them for possible performance improvements.

用越来越大的输入喂它运行,它会告诉你哪里的慢点需要一些工作。