加速matlab运行的三重境界
(2010-08-11 18:13:56)
标签:
杂谈
一、 遵守Performance Acceleration的规则
二、 遵守三条规则
三、 绝招
%%%%%%%%%%%%%%%%%
一、 遵守Performance Acceleration的规则
关于什么是“Performance Acceleration”请参阅matlab的帮助文件。我只简要的将
其规则总结如下7条:
1、只有使用以下数据类型,matlab才会对其加速:
logical,char,int8,uint8,int16,uint16,int32,uint32,double而语句中如果使用了非以上的数据类型则不会加速,如:numeric,cell,structure,single,function
handle,java classes,user classes,int64,uint64
2、matlab不会对超过三维的数组进行加速。
3、当使用for循环时,只有遵守以下规则才会被加速:
a、for循环的范围只用标量值来表示;
b、for循环内部的每一条语句都要满足上面的两条规则,即只使用支持加速的数据类型,只使用三维以下的数组;
c、循环内只调用了内建函数(build-in function)。
4、当使用if、elseif、while和switch时,其条件测试语句中只使用了标量值时,将加速运行。
5、不要在一行中写入多条操作,这样会减慢运行速度。即不要有这样的语句:
x = a.name;