如何获得刺激时间的平均值(平均值),而不是列出手动计算的所有100个刺激时间?
function [time] = Babtime(n)
N = 100;
t = zeros(N,1);
for k = 1:N
tic;
Bab(n);
Stimulationtime=toc
另外,如果没有我手动检查以下代码的最短1000输出时间,我怎样才能获得最短的刺激时间
function [time] = Haldtime(n)
N = 1000;
t = zeros(N,1);
for k = 1:N
tic;
Hald(n);
Stimulationtime=toc
谢谢
答案 0 :(得分:0)
将toc值存储在数组中,然后使用min。对于您的代码,您似乎已经创建了数组来存储时间值(数组t):
function [time] = Haldtime(n)
N = 1000;
t = zeros(N,1);
for k = 1:N
tic;
Hald(n);
t(k)=toc;
end
disp(min(t));
time=min(t);
当然,如果你想要平均值(更有用),那么将min替换为均值
答案 1 :(得分:0)
为了使它更方便,让你使用任何数量的输入参数和可变数量的运行周期的任何函数,你可以修改你的计时器功能如下:
function [times, t_min, t_mean] = myTimer(funcH, sampling, varargin)
times = zeros(sampling, 1);
for ii = 1:sampling
tic;
funcH(varargin{:});
times(ii) = toc;
end
t_min = min(times);
t_mean = mean(times);
然后您可以简单地使用此函数来计算不同功能的运行时间。对于您的示例,它将是:
[~, tmin, tavg] = myTimer(@Bab, 100, n);
或
[T, tmin, tavg] = myTimer(@Hald, 1000, n);
请注意,在第二个示例中,所有运行时间都保存在T
中,因此稍后您可以计算除min和mean之外的不同统计信息。
查看profile
可能也很有用。