ImageVerifierCode 换一换
格式:PPT , 页数:28 ,大小:268.50KB ,
资源ID:1227016      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1227016.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB程式设计入门篇程式码与记忆体之最佳化.PPT)为本站会员(国***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

MATLAB程式设计入门篇程式码与记忆体之最佳化.PPT

1、MATLAB 程式設計入門篇:通用運算式MATLAB 程式設計入門篇程式碼與記憶體之最佳化張智星jangmirlab.orghttp:/mirlab.org/jang清大資工系 多媒體檢索實驗室MATLAB 程式設計入門篇:通用運算式n 重點說明n 6.5 版之前, MATLAB 執行效率非常倚賴程式碼的向量化n 6.5 (含)版後, MATLAB 引進了 JIT 加速器,程式碼向量化的重要性相對降低。n 同學們仍須瞭解程式碼向量化的實作方法、優缺點。n 本章範例之執行環境n OS: Windows 7n CPU: Intel Core i7-2670QM, 2.20GHzn RAM: 8GB

2、n MATLAB: 7.12.0.635 (R2011a)2-1 程式碼的向量化MATLAB 程式設計入門篇:通用運算式n 6.5 版之前, MATLAB 程式環境是一個傳統的解譯器( Interpreter),在執行 MATLAB的程式碼時,會進行下列動作 :n 逐列對程式碼轉換為 p-code,這是 MATLAB 可以解讀的格式。n 對產生的 p-code 進行逐列執行。MATLAB 程式運作流程 (I)MATLAB 程式設計入門篇:通用運算式n 在執行每一列 p-code 時,都還包含一些經常開銷( Overhead)n 若該列執行需要大量運算,經常開銷就會顯得很渺小而不會拖累程式執行速

3、度。n 若該列只是簡單的運算,那經常開銷的比例就會相對提高。n 若該列是放在迴圈內,那麼程式碼的執行速度就會被這些經常開銷大幅拖慢。MATLAB 程式運作流程 (II)MATLAB 程式設計入門篇:通用運算式n 若要加快執行速度n MATLAB 6.5 版之前,就要盡量不使用迴圈 ,而盡量改用向量化的運算,以降低經常開銷的比例。 n MATLAB 6.5 版(含)之後,已經加入了 JIT-Accelerator,有效地降低了經常開銷的比例,同時也使得向量化程式碼的重要性越來越低。n JIT: Just-In-Timen 對向量化運算來進行說明,主要著眼點在於:n 很多舊的程式碼還是包含向量化的

4、運算。n MATLAB 6.5 之前的版本,向量化的運算還是提高執行效率的主要關鍵。n 某些情況下, JIT-Accelerator 的效能無法完全發揮,還是需要配合向量化的運算才可以讓程式碼更有效率。 MATLAB 程式碼的向量化MATLAB 程式設計入門篇:通用運算式傳統範例 (I)n 計算 n 項調和數列的總和,若使用 for 迴圈,當 n = 100,000 時,可計算其執行時間如下:n 範例 2-1: hsum01.mticn = 100000;total = 0;for i = 1:ntotal = total+1/i;endtocelapsed_time =2.63000MATL

5、AB 程式設計入門篇:通用運算式n 由上可知,當 n = 100,000 時,使用 for 迴圈的程式碼約需 2.63 秒才能執行完畢。若改用向量化的運算,可計時如下:n 範例 2-2: hsum02.mticn = 100000;sequence = 1:n;total = sum(1./sequence);tocelapsed_time =0.0600傳統範例 (II)MATLAB 程式設計入門篇:通用運算式提示n 上述的測試時間是根據 Pentium-450, 256 MB RAM在 MATLAB 6.1 所得到的結果。如果你的電腦更快,計算時間的差異性就不會那麼顯著。n 若使用我目前環

6、境進行測試:n hsum01 0.009773 secn hsum02 0.008938 secn 在 MATLAB 6.5 版之後,採用了 JIT (Just-In-Time) 的編譯技術,因此向量化和非向量化的程式執行速度差異較小 。MATLAB 程式設計入門篇:通用運算式n 要能夠熟練地運用向量化的運算,有下列三個訣竅:n 對矩陣的索引( Indexing)非常熟悉。n 對 MATLAB 可用的內建( Built-in)指令非常熟悉。n 對問題本身的解法非常瞭解。程式碼向量化的要訣MATLAB 程式設計入門篇:通用運算式n 若要對一個矩陣 x 的每一個直行乘上向量 a 的每一個元素,我們可使用內建的 diag 指令來達成此功能,例如:n 範例 2-3: colMultiply01.mn 此為以空間換取時間的範例。x = 1 2 3; 1 1 1; a = 3 2 1; y = x*diag(a)y =3 4 33 2 1 矩陣直行乘法

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。