matlab中double 和single数据类型的差别
double数据类型占用8个字节,single数据类型占4个字节。所以用single会更快一些。(可以这么理解,就像你做8位数乘法跟做4位数乘法一样~肯定做4位数的运算更快一些嘛)
a=randn(3,3)
a =
0.8404 -0.5445 0.4900
-0.8880 0.3035 0.7394
0.1001 -0.6003 1.7119
>> b=single(a)
b =
0.8404 -0.5445 0.4900
-0.8880 0.3035 0.7394
0.1001 -0.6003 1.7119
>> c=randn(3,3);
>> tic,a*c,toc;
ans =
0.5899 2.1930 -1.6388
-1.0974 -0.8179 -1.1239
-0.1730 2.4243 -4.2069
Elapsed time is 0.199251 seconds.
>> tic,b*c,toc;
ans =
0.5899 2.1930 -1.6388
-1.0974 -0.8179 -1.1239
-0.1730 2.4243 -4.2069
Elapsed time is 0.002739 seconds.
>> class(a)
ans =
double
>> class(b)
ans =
single
可见,single类型数据运算速度明显比double型数据快很多。