閱讀108 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Matlab得到運行時間

當你需要計算一組Matlab操作的運行時間時,可以使用tic和toc函數。tic函數啟動一個秒表,表示計時開始;toc則停止這個秒表,表示計時結束,並計算出所經曆的時間(單位為秒)。比如,下麵的代碼連續兩次計算plot(rand(50,5))這條指令的執行時間:

>> tic;plot(rand(50,5));toc
Elapsed time is 0.202291 seconds.
>> tic;plot(rand(50,5));toc
Elapsed time is 0.062176 seconds.

你會發現這兩條同樣的plot命令在計算時間上的差別。第二條plot命令要比第一條執行得快,這是因為Matlab已經在執行第一條plot命令時生成了Figure窗口並且已經將所需要的函數編譯到了內存,這樣第二條指令就省去了創建Figure窗口以及函數搜索和編譯的時間。

除了tic和toc外,Matlab還提供了兩個函數cputime和etime,用來計算一次運算所占用的時間。其中,函數cputime返回以秒為單位的、自當前Matlab程序段啟動之後到調用該函數所占用的CPU時間;函數etime計算兩個以6元素行向量格式(例如函數clock與datevec的返回值)表示的時間向量(年 月 日 時 分 秒)之間以秒為單位的時間間隔。實際上,函數tic和toc內部也在利用clock和etime進行計時。下麵的這些代碼演示了cputime和etime的用法,其中histo_equalization是我自定義的一個關於直方圖均衡的M腳本文件:
>> t0 = cputime; histo_equalization; cputime-t0

ans =

    1.4375
>> t1 = clock; histo_equalization; etime(clock,t1)

ans =

    1.5000

由此可看出cpu占用時間與程序占用時間之間的差別。


參考《精通Matlab7》

最後更新:2017-04-03 15:22:13

  上一篇:go 六年親曆,見證中國大數據技術與應用時代的到來
  下一篇:go 網絡子係統36_BPDU協議格式