MATLAB:如何包含平均值和最小时间计算器程序

时间:2016-09-15 07:55:44

标签: matlab matlab-figure

如何获得刺激时间的平均值(平均值),而不是列出手动计算的所有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

谢谢

2 个答案:

答案 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可能也很有用。