1.用MEX文件编写循环代码
必须使用for循环时,把它写为MEX文件。这样,循环会运行得更快。因为不必在每次运行循环中的语句时都对它们进行解释。
2.变量赋值
进行变量赋值时,要注意两点。首先,改变已有变量的数据类型或数组形状会使程序运行速度减慢,因为这需要额外的时间进行处理。需要保存不同类型的数据时,建议创建新变量。其次,如果一个变量已经赋给了实数或复数,现在赋给它复数或实数会影响运行速度。
3.操作实型数据
MATLAB为操作实型数特意设计了一些函数,使用这些函数进行实数操作时比使用一般函数快。这些函数包括reallog,realpow和realsqrt等。
4.使用合适的逻辑运算符
进行逻辑AND或逻辑OR时,有两种选择,如表1-3所示。
表1-3 逻辑AND和逻辑OR的两种选择
| 运 算 符 | 描 述 |
|---|---|
| &, | | 对数组进行逐元素的逻辑AND或逻辑OR比较 |
| &&, || | 对标量值进行逻辑AND或逻辑OR比较 |
在if和while语句中,使用&&和||更有效率。因为这两个运算符不一定计算整个表达式。例如下面的语句中,只要输入参数的个数小于3,MATLAB就会只计算表达式的前半部分,而不会继续计算下去。
if (nargin >= 3) && (ischar(varargin{3}))
5.重载内部函数
一般不要重载MATLAB内部函数,因为重载内部函数比直接使用内部函数费时。
6.函数比脚本运行更快
函数中的代码比脚本中的代码运行得更快。在MATLAB中,每次使用脚本时都要把它装入内存,然后逐行运行;而函数则被编译为P代码,只需要装入内存一次。
7.调用很多M文件时把M文件编译成P代码
使用下面的命令,可以将M文件编译成P代码。
pcode mfilename
其中,mfilename是M文件的名称。使用P代码,一方面可以对MATLAB代码进行加密,另一方面可以提高运行速度。
8.使用load函数和save函数比MATLAB文件I/O过程更好
使用这两个函数,运行更快,内存碎片更少。
9.避免大型后台处理
避免在MATLAB中运行程序时,在后台进行大型处理,这样,可以为MATLAB空出更多CPU时间。