我一开始写了好几个for循环,从不同的Excel文件中调用数据。后来用MATLAB自带的“运行并计时”功能,找到了毒瘤的代码是读取Excel中的数据,此操作占用了我将近80%的时间。然后我优化了一下,尽量减少读取Excel的次数,代码跑的时间立刻就下来了
一、 遵守Performance Acceleration的规则
二、 遵守三条规则
三、 绝招
一、 遵守Performance Acceleration的规则
1、只有使用以下数据类型,matlab才会对其加速: logical,char,int8,uint8,int16,uint16,int32,uint32,double
而语句中如果使用了非以上的数据类型则不会加速,如:numeric,cell,structre,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; for k=1:10000, sin(A(k)), end;
6、当某条操作改变了原来变量的数据类型或形状(大小,