众所周知,MATLAB长于矩阵运算,在使用矩阵进行运算时比普通的循环快得多,同时,不同的矩阵运算速度也会有不同。以下为实例:
>> clear all
>> a = rand(100000000, 1);
>> tic; a'*a; toc % 方法一,矩阵乘法
时间已过 0.054834 秒。
>> tic; a.*a; toc % 方法二,不包括求和
时间已过 0.211555 秒。
>> tic; sum(a.*a); toc % 方法二,包括求和
时间已过 0.447394 秒。
可以看出,使用矩阵式的乘法相比于使用element-wise的方法在速度上有明显优势的,在使用MATLAB中如果对效率要求比较高的话,应该多加注意本项。