matlab计算运行时间方法
生活随笔
收集整理的這篇文章主要介紹了
matlab计算运行时间方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(其一)
MATLAB實際單位時間計時函數的具體應用,在編寫程序時,經常需要獲知代碼的執行實際時間,這就需要在程序中用到計時函數,matlab中提供了以下三種方法:
1.cputime(單位不明)
返回matlab啟動以來的CPU時間,可以在程序執行錢保存當時的CPU時間,然后在程序執行結束后用cputime減去運行前保存的數值,就可以獲取程序的實際運行時間
>>t0=cputime;pause(3);TimeCost=cputime-t0
2.tic/toc(單位s)
tic用在程序的開始,作用是啟動一個計時器,然后在程序尾部放一個toc,表示終止計時器,并返回tic啟動以來的總時s間
3.etime(單位s)
etime(t1,t2)用來計算兩個日期向量t1和t2之間的時間差,結合前面講到的clock函數也可以用來確定程序代碼的運行時間
>>t0=clock;pause(3);TimeCost=etime(clock,t0)
在三種計時中建議使用第二種,相對來說最精確。當然你可以使用profiler來確定你的執行時間,并且具體到沒有個命令的時間
經常我們需要計算我們程序到底運行多長時間,這樣可以比較程序的執行效率。當然這個對于只有幾秒鐘的小程序沒有什么意義,但是對于大程序就有很重要的意義 了。
下面我們就說說Matlab中計算程序運行時間的三種常用方法吧!
注意:三種方法由于使用原理不一樣,得到結果可能有一定 的差距!?
(其二)
1、tic和toc組合(使用最多的)
計算tic和toc之間那段程序之間的運行時間,它的經典格式為?
tic
。。。。。。。。。。
toc
復制代碼
換句話說程序,程序遇到tic時Matlab自動開始計時,運行到toc時自動計算此時與最近一次tic之間的時間。這個有點拗口,下面我們舉個例子說明?
% by dynamic of Matlab技術論壇
% see also http://www.matlabsky.com
% contact me matlabsky@gmail.com
% 2009-08-18 12:08:47
clc
tic;%tic1
t1=clock;
for i=1:3
tic ;%tic2
t2=clock;
pause(3*rand)
%計算到上一次遇到tic的時間,換句話說就是每次循環的時間
disp(['toc計算第',num2str(i),'次循環運行時間:',num2str(toc)]);
%計算每次循環的時間
disp(['etime計算第',num2str(i),'次循環運行時 間:',num2str(etime(clock,t2))]);
%計算程序總共的運行時間
disp(['etime計算程序從開始到現在運行的時間:',num2str(etime(clock,t1))]);
disp('======================================')
end
%計算此時到tic2的時間,由于最后一次遇到tic是在for循環的i=3時,所以計算的是最后一次循環的時間
disp(['toc計算最后一次循環運行時間',num2str(toc)])
disp(['etime程序總運行時間:',num2str(etime(clock,t1))]);
復制代碼
運行結果如下,大家可以自己分析下?
toc計算第1次循環運行時間:2.5628
etime計算第1次循環運行時間:2.562
etime計算程序從開始到現在運行的時間:2.562
======================================
toc計算第2次循環運行時間:2.8108
etime計算第2次循環運行時間:2.813
etime計算程序從開始到現在運行的時間:5.375
======================================
toc計算第3次循環運行時間:2.0462
etime計算第3次循環運行時間:2.046
etime計算程序從開始到現在運行的時間:7.421
======================================
toc計算最后一次循環運行時間2.0479
etime程序總運行時間:7.421
復制代碼
2、etime(t1,t2)并和clock配合
來計算t1,t2之間的時間差,它是通過調用windows系統的時鐘進行時間差計算得到運行時間的,應用的形式?
t1=clock;
。。。。。。。。。。。
t2=clock;
etime(t2,t1)
復制代碼
至于例子我就不舉了,因為在上面的例子中使用了etime函數了
3、cputime函數來完成
使用方法和etime相似,只是這個是使用cpu的主頻計算的,和前面原理不同,使用格式如下?
t0=cputime
。。。。。。。。。。。。。
t1=cputime-t0
復制代碼
上面說到了三種方法,都是可以進行程序運行時間計算的,但是Matlab官方推薦使用tic/toc組合,When timing the duration of an event, use the tic and toc functions instead of clock or etime.
至于大家可以根據自己的喜好自己選擇,但是使用tic/toc的時候一定要注意,toc計算的是與最后一次 運行的tic之間的時間,不是第一個tic,更不是第二個。。。。。
MATLAB實際單位時間計時函數的具體應用,在編寫程序時,經常需要獲知代碼的執行實際時間,這就需要在程序中用到計時函數,matlab中提供了以下三種方法:
1.cputime(單位不明)
返回matlab啟動以來的CPU時間,可以在程序執行錢保存當時的CPU時間,然后在程序執行結束后用cputime減去運行前保存的數值,就可以獲取程序的實際運行時間
>>t0=cputime;pause(3);TimeCost=cputime-t0
2.tic/toc(單位s)
tic用在程序的開始,作用是啟動一個計時器,然后在程序尾部放一個toc,表示終止計時器,并返回tic啟動以來的總時s間
3.etime(單位s)
etime(t1,t2)用來計算兩個日期向量t1和t2之間的時間差,結合前面講到的clock函數也可以用來確定程序代碼的運行時間
>>t0=clock;pause(3);TimeCost=etime(clock,t0)
在三種計時中建議使用第二種,相對來說最精確。當然你可以使用profiler來確定你的執行時間,并且具體到沒有個命令的時間
經常我們需要計算我們程序到底運行多長時間,這樣可以比較程序的執行效率。當然這個對于只有幾秒鐘的小程序沒有什么意義,但是對于大程序就有很重要的意義 了。
下面我們就說說Matlab中計算程序運行時間的三種常用方法吧!
注意:三種方法由于使用原理不一樣,得到結果可能有一定 的差距!?
(其二)
1、tic和toc組合(使用最多的)
計算tic和toc之間那段程序之間的運行時間,它的經典格式為?
tic
。。。。。。。。。。
toc
復制代碼
換句話說程序,程序遇到tic時Matlab自動開始計時,運行到toc時自動計算此時與最近一次tic之間的時間。這個有點拗口,下面我們舉個例子說明?
% by dynamic of Matlab技術論壇
% see also http://www.matlabsky.com
% contact me matlabsky@gmail.com
% 2009-08-18 12:08:47
clc
tic;%tic1
t1=clock;
for i=1:3
tic ;%tic2
t2=clock;
pause(3*rand)
%計算到上一次遇到tic的時間,換句話說就是每次循環的時間
disp(['toc計算第',num2str(i),'次循環運行時間:',num2str(toc)]);
%計算每次循環的時間
disp(['etime計算第',num2str(i),'次循環運行時 間:',num2str(etime(clock,t2))]);
%計算程序總共的運行時間
disp(['etime計算程序從開始到現在運行的時間:',num2str(etime(clock,t1))]);
disp('======================================')
end
%計算此時到tic2的時間,由于最后一次遇到tic是在for循環的i=3時,所以計算的是最后一次循環的時間
disp(['toc計算最后一次循環運行時間',num2str(toc)])
disp(['etime程序總運行時間:',num2str(etime(clock,t1))]);
復制代碼
運行結果如下,大家可以自己分析下?
toc計算第1次循環運行時間:2.5628
etime計算第1次循環運行時間:2.562
etime計算程序從開始到現在運行的時間:2.562
======================================
toc計算第2次循環運行時間:2.8108
etime計算第2次循環運行時間:2.813
etime計算程序從開始到現在運行的時間:5.375
======================================
toc計算第3次循環運行時間:2.0462
etime計算第3次循環運行時間:2.046
etime計算程序從開始到現在運行的時間:7.421
======================================
toc計算最后一次循環運行時間2.0479
etime程序總運行時間:7.421
復制代碼
2、etime(t1,t2)并和clock配合
來計算t1,t2之間的時間差,它是通過調用windows系統的時鐘進行時間差計算得到運行時間的,應用的形式?
t1=clock;
。。。。。。。。。。。
t2=clock;
etime(t2,t1)
復制代碼
至于例子我就不舉了,因為在上面的例子中使用了etime函數了
3、cputime函數來完成
使用方法和etime相似,只是這個是使用cpu的主頻計算的,和前面原理不同,使用格式如下?
t0=cputime
。。。。。。。。。。。。。
t1=cputime-t0
復制代碼
上面說到了三種方法,都是可以進行程序運行時間計算的,但是Matlab官方推薦使用tic/toc組合,When timing the duration of an event, use the tic and toc functions instead of clock or etime.
至于大家可以根據自己的喜好自己選擇,但是使用tic/toc的時候一定要注意,toc計算的是與最后一次 運行的tic之間的時間,不是第一個tic,更不是第二個。。。。。
總結
以上是生活随笔為你收集整理的matlab计算运行时间方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab绘制离散数据图
- 下一篇: labview 串口通信开发基础详解