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 可以對選中的代碼區域自動排版。