2016-09-15 14 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

ちょうど助言として、私はあなたの関数は定義されていない 'time'の代わりに' Stimulationtime'を返すべきだと思います。 –

+0

@MatthiasWはStimulationtimeの代わりに時間を返します。 – obchardon

答えて

0

StoreでのTOC値をありがとう配列を作成し、minを使用します。あなたは(はるかに便利である)平均は、その後の平均と分を置き換えたい場合は、もちろん

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); 

を:あなたのコードのために、あなたはすでに時間の値(配列t)を格納する配列を作成しているように見えます

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); 

その後、あなたは、単に行うことができますあなたが入力引数の任意の数の任意の関数を使用すると、実行サイクルの可変数で、次のおタイマー機能を変更することができますせ、それをより便利にするために

0

この関数を使用して異なる実行時間を計算する 機能。あなたの例については、次のようになります。第二の例では、実行時間の全てがTに保存されていることを

[~, tmin, tavg] = myTimer(@Bab, 100, n); 

または

[T, tmin, tavg] = myTimer(@Hald, 1000, n); 

注ので、後であなたが分以外にもさまざまな統計を計算し、意味することができます。

profileをご覧ください。

関連する問題