2016-09-15 61 views
0

如何获得我的刺激时间的平均值(平均值),而不是列出手动计算的所有100次刺激时间?MATLAB:如何在时间计算器程序中包含均值和最小值

  function [time] = Babtime(n) 
      N = 100; 
      t = zeros(N,1); 
      for k = 1:N 
      tic; 
      Bab(n); 
      Stimulationtime=toc 

此外,我怎么能得到的最小刺激时间没有我对低于最低

   function [time] = Haldtime(n) 
       N = 1000; 
       t = zeros(N,1); 
       for k = 1:N 
       tic; 
       Hald(n); 
       Stimulationtime=toc 

手动检查出的1000输出时间码谢谢

+0

正如一个侧面说明,但我认为你的函数应该返回'Stimulationtime'而不是'时间',它没有被定义。 –

+0

@MatthiasW返回时间而不是Stimulationtime。 – obchardon

回答

0

Store中的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); 

当然,如果你想要的平均值(这是更为有用的),然后替换平均分

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,这样以后就可以计算出不同的统计,除了最小和平均。

看看profile也许有用。

相关问题