MATLAB程式设计进阶篇程式计时.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB程式设计进阶篇程式计时

MATLAB 程式設計進階篇:程式計時 MATLAB 程式設計進階篇 程式計時 張智星 jang@.tw .tw/~jang 清大資工系 多媒體檢索實驗室 1-1 整段程式碼的計時方法 碼表計時: tic 和 toc 指令,是最簡單的程式計時方法,只要將整段程式碼置於這兩個指令之中,MATLAB 就會自動計算程式執行所花費的時間 範例1-1:tictoc01.m 結果: Elapsed time is 0.886899 seconds tic % 開始計時 inv(rand(500)); % inv 指令是用來計算反矩陣 toc % 結束計時 1-1 整段程式碼的計時方法 clock: clock 指令可傳回現在的時間所形成的向量,包含 6 個元素,分別是年、月、日、時、分、秒 例如: 執行: round(clock) % 傳回現在的時間,並以整數形式顯示 結果: ans = 2007 2 19 23 26 39 代表現在時間是 2007 年 2 月 19 日 23 時 26 分 39 秒 1-1 整段程式碼的計時方法 etime: etime 指令可傳回兩個時間的差值,並以秒數表示 將 clock 和 etime 指令合併使用,就可以計算一段程式碼的執行時間 範例1-2:etime01.m 結果: elapsedTime = 0.2660 t0 = clock; % 記錄現在的時間 a = inv(rand(500)); % 執行反矩陣運算 elapsedTime = etime(clock, t0) % 計算所耗費的總時間 1-1 整段程式碼的計時方法 cputime: cputime可傳回 MATLAB 從啟動後所占用的 CPU 時間 範例1-3:cputime01.m 結果: cpuTime = 0.3500 t0 = cputime; % 記錄現在的時間 a = inv(rand(500)); % 執行反矩陣運算 cpuTime = cputime-t0 % 計算 CPU 所耗費的時間 1-1 整段程式碼的計時方法 cputime: cputime 指令回傳的時間並不包含讀檔、關檔等 I/O 運算,所以其值會小於整段程式碼的實際執行時間 下面範例測試 etime 和 cputime 的差異 1-1 整段程式碼的計時方法 範例1-4:cputime02.m 結果 : elapsedTime = 0.1810 cpuTime = 0.1700 mat = magic(50); t0 = clock; for i = 1:10; mesh(mat); end elapsedTime = etime(clock, t0) % 顯示實際經過時間 t0 = cputime; for i = 1:10; mesh(mat); end cpuTime = cputime-t0 % 顯示 CPU 佔用時間 1-2 個別函數的計時方法 程式計時器: 計時器可以分別計算每一個指令所佔用的執行時間,並列出詳細的統計表 MATLAB 計時器的指令是 profile 範例1-5:profile01.m profile on -detail mmex % 啟動計時器(只對 M/MEX 檔案進行計時) for i = 1:1000 a = inv(rand(100)); % 計算 100x100 亂數矩陣的反矩陣 b = mean(rand(100)); % 計算 100x100 亂數矩陣的每一直行平均值 end profile off % 停止計時器 profile report % 呈現計時結果 1-2 個別函數的計時方法 範例1-5:profile01.m 1-2 個別函數的計時方法 如果你點選上圖中的「mean」可以開啟下列視窗: 1-2 個別函數的計時方法 程式計時器: 欲使 profile 指令也對內建指令進行計時,可在 profile on 之後接上「-detail builtin」 範例1-6:profile02.m profile on -detail builtin % 啟動計時器,對 M/MEX 檔案及內建函式計時 for i = 1:1000 a = inv(rand(100)); % 計算 100x100 亂數矩陣的反矩陣 b = mean(rand(100)); % 計算

文档评论(0)

118books + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档