MATLAB之single函数
MATLAB之single函数:
一般来说,大矩阵计算,如果用single类型的数据能节省一半的内存空间,double数据类型占8个字节,single类型占4个字节,matlab在内部执行的时候是默认转换成double类型进行运算,据说可以从菜单里面改设置变成默认single 未尝试过,matlab里面有个命令可以转换数据格式,那就是:
single函数
可以执行以下语句看一下b是什么:
b=1; whos b b=single(b); whos b
你可以看到b从默认的double变成了single
也可以尝试如下命令来测试运算读速度:
a=rand(1,100); b=rand(1,100); c=rand(1,100); a1=single(a); b1=single(b); tic for i=1:100 c=a.*b; end toc tic for i=1:100 c=a1.*b1; end toc
结果:
Elapsed time is 0.081662 seconds.
Elapsed time is 0.002880 seconds.
说明single的运算速度的确是快很多,用时约为原来的1/5
此外 simulink里面有强制数据类型转换 也许可以提高simulink的速度(未测试)
Tips
1. Matlab中如果我们使用循环的话,如果循环体内的程序不含有single等类型,而且使用的函数都是matlab的build-in function的话,matlab会自动帮助你优化for循环。
2. 使用ctrl + i 可以对选中的代码区域自动排版。
- 上一篇 »C++ 实现单例
- 下一篇 »初识MATLAB之矩阵 - 一次性炮灰