gpt4 book ai didi

被调用函数中的 MATLAB tic/toc

转载 作者:行者123 更新时间:2023-12-02 00:26:36 26 4
gpt4 key购买 nike

在MATLAB中,我想对一个别人写的函数进行计时,他们的函数内部可能使用了tic/toc。我想要我自己的 tic/toc。但如果内部函数调用 tic,则外部计时器会重置。

我怎样才能避免这种情况?我不想使用 timeit,因为 timeit 会多次调用内部函数,这是我不想要的。

MWE:

外部脚本:

tic

inner_function()

elapsed_time = toc;

fprintf('Function took %f seconds\n', elapsed_time)

内部函数:

function [] = inner_function()

pause(2)

tic
toc

end

然后:

>> outer_script
Elapsed time is 0.000024 seconds.
Function took 0.000232 seconds

如果你在 inner_function() 中注释掉 tic/toc 你会得到这个,这就是我想要的:

>> outer_script
Function took 2.000362 seconds

只是为了说明更多的上下文,外部脚本是我的,我用它来测试我的学生编写的函数。我想让他们在他们的代码中随心所欲地使用 tic/toc,但我也希望能够独立地为他们的代码计时。

最佳答案

您可以通过将您的 tic 调用分配给一个变量来做到这一点。稍后将您想要的计时器作为参数提供给 toc

function [] = inner_function()    
pause(2)
tic
toc
end

重新运行修改后的示例,

clock2 = tic;
inner_function()
elapsed_time = toc(clock2);
fprintf('Function took %f seconds\n', elapsed_time)
Elapsed time is 0.000009 seconds.
Function took 2.009997 seconds

关于被调用函数中的 MATLAB tic/toc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53643161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com