加速matlab运行的三重境界.docVIP

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

加速matlab运行的三重境界 加速matlab运行的三重境界 8 [9 h2 p; a1 B3 ]! {0 z%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2 y1 v0 ]/ `1 r4 t) `+ Z! u) Z %%%%%%%%%%%%%%%%%%%%%%% . ` F7 P4 O$ d, V! @% N9 u6 a一、 遵守Performance Acceleration的规则 * f E. _* g% R/ M二、 遵守三条规则 ??q- L! \6 [- F# V- ?三、 绝招 I0 ]) @: o$ x5 e %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8 d8 u2 t: W$ X- h6 | %%%%%%%%%%%%%%%%%%%%%%% 一、 遵守Performance Acceleration的规则7 P ~, L X! s3 w5 q; _4 T$ ~2 m. M 关于什么是“Performance Acceleration”请参阅matlab的帮助文件。我只简要的将 H \3 C$ G8 n3 H! n5 {其规则总结如下7条:0 q# D% p$ I/ C# w! a 1、只有使用以下数据类型,matlab才会对其加速:??f5 B9 t( V x% r( K ?$ f logical,char,int8,uint8,int16,uint16,int32,uint32,double J j! s- J8 Z: e# ~而语句中如果使用了非以上的数据类型则不会加速,如:numeric,cell,structu. Z8 a) ] f ~ re,single, / j# v- n1 I6 V0 r, ^: E* tfunction handle,java classes,user classes,int64,uint64! E1 B @9 t) I 2、matlab不会对超过三维的数组进行加速。 0 B2 c2 r4 Z) x. i0 |9 L1 W ~3、当使用for循环时,只有遵守以下规则才会被加速:a、for循环的范围只用标量值# e$ \??Q+ E V2 E; L( x 来表示; 4 I! ^$ j! _2 h+ b. E; I; H: E9 v: Zb、for循环内部的每一条语句都要满足上面的两条规则,即只使用支持加速的数- I7 y5 E3 H3 c1 ?! ^* ?/ B 据类型,只使用 7 ^9 ^+ g2 ^# K3 h$ r三维以下的数组;c、循环内只调用了内建函数(build-in function)。 : k# |8 m u: r! {4、当使用if、elseif、while和switch时,其条件测试语句中只使用了标量值时,将- P `$ d: V, l8 P??f 加速运行。3 h??{. ?5 E m3 x8 E) r5 e3 E 5、不要在一行中写入多条操作,这样会减慢运行速度。即不要有这样的语句:7 A0 I! ^: J( }/ G$ f x = a.name; for k=1:10000, sin(A(k)), end;8 z1 [ \5 a a 6、当某条操作改变了原来变量的数据类型或形状(大小,维数)时将会减慢运行速, N% c$ \* \9 W! e??X 度。 7 E* o x9 k, [( s6 U* _/ |7、应该这样使用复常量x = 7 + 2i,而不应该这样使用:x = 7 + 2*i,后者会降低 ) ^; s, X2 h) F! j8 @ T运行速度。 % [ s, ^+ `; b6 G%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # K; V6 N7 Q4 }% z%%%%%%%%%%%%%%%%%%%%%%% ; ~; n V??] v. X二、 遵守三条规则 * _7 O) U. t. T5 s/ p# ~% \3 U% i1、尽量避免使用循环,MATLAB的文档中写到“MATLAB is a matrix language, whic . V! c5 m( L( m* Oh means it is designed) }8 \7 A: c# a7 I2 a+ ^0 g. ~! G for vector and matrix operations. You can often speed up your

文档评论(0)

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

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

1亿VIP精品文档

相关文档