免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
加速matlab運(yùn)行

加速matlab運(yùn)行

一、 遵守Performance Acceleration的規(guī)則
二、 遵守三條規(guī)則



一、 遵守Performance Acceleration的規(guī)則
關(guān)于什么是“Performance Acceleration”請參閱matlab的幫助文件。我只簡要的將
其規(guī)則總結(jié)如下7條:1、只有使用以下數(shù)據(jù)類型,matlab才會對其加速:logical,char,int8,uint8,int16,uint16,int32,uint32,double
而語句中如果使用了非以上的數(shù)據(jù)類型則不會加速,如:numeric,cell,structure,single,
function handle,java classes,user classes,int64,uint64
2、matlab不會對超過三維的數(shù)組進(jìn)行加速。3、當(dāng)使用for循環(huán)時,只有遵守以下規(guī)則才會被加速:a、for循環(huán)的范圍只用標(biāo)量值
來表示;
b、for循環(huán)內(nèi)部的每一條語句都要滿足上面的兩條規(guī)則,即只使用支持加速的數(shù)
據(jù)類型,只使用
三維以下的數(shù)組;c、循環(huán)內(nèi)只調(diào)用了內(nèi)建函數(shù)(build-in function)。4、當(dāng)使用if、elseif、while和switch時,其條件測試語句中只使用了標(biāo)量值時,將
加速運(yùn)行。
5、不要在一行中寫入多條操作,這樣會減慢運(yùn)行速度。即不要有這樣的語句:
x = a.name; for k=1:10000, sin(A(k)), end;
6、當(dāng)某條操作改變了原來變量的數(shù)據(jù)類型或形狀(大小,維數(shù))時將會減慢運(yùn)行速
度。(因為會重新分配內(nèi)存,所以,我們需要事先分配好內(nèi)存)
7、應(yīng)該這樣使用復(fù)常量x = 7 + 2i,而不應(yīng)該這樣使用:x = 7 + 2*i,后者會降低
運(yùn)行速度。

二、 遵守三條規(guī)則
1、盡量避免使用循環(huán),MATLAB的文檔中寫到“MATLAB is a matrix language, which means it is designed
for vector and matrix operations. You can often speed up your M-file c
ode by using
vectorizing algorithms that take advantage of this design. Vectorizati
on means converting
for and while loops to equivalent vector or matrix operations.”。改進(jìn)
這樣的狀況有兩種方法:
a、盡量用向量化的運(yùn)算來代替循環(huán)操作。如將下面的程序:
i=0;
for t = 0:.01:10
i = i+1;
y(i) = sin(t);
end
替換為:
t = 0:.01:10;
y = sin(t);
速度將會大大加快。最常用的使用vectorizing技術(shù)的函數(shù)有:All、diff、ipermute、permute、reshape、squeeze、any、find、logical、prod、shiftdim、sub2ind、cumsum、ind2sub、ndgrid、repmat、sort、sum 等。
請注意matlan文檔中還有這樣一句補(bǔ)充:“Before taking the time to
vectorize your code, read the section on Performance Acceleration.
You may be able to
speed up your program by just as much using the MATLAB JIT Accelera
tor instead ofvectorizing.”。何去何從,自己把握。
b、在必須使用多重循環(huán)時下,如果兩個循環(huán)執(zhí)行的次數(shù)不同,則在循環(huán)的外環(huán)執(zhí)
行循環(huán)次數(shù)少的,
內(nèi)環(huán)執(zhí)行循環(huán)次數(shù)多的。這樣可以顯著提高速度。
2、a、預(yù)分配矩陣空間,即事先確定變量的大小,維數(shù)。這一類的函數(shù)有zeros、ones、cell、struct、repmat等。
b、當(dāng)要預(yù)分配一個非double型變量時使用repmat函數(shù)以加速,如將以下代碼:
A = int8(zeros(100));
換成:
A = repmat(int8(0), 100, 100);
c、當(dāng)需要擴(kuò)充一個變量的大小、維數(shù)時使用repmat函數(shù)。
3、a、優(yōu)先使用matlab內(nèi)建函數(shù),將耗時的循環(huán)編寫進(jìn)MEX-File中以獲得加速。b、使用Functions而不是Scripts 。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
matlab學(xué)習(xí)筆記函數(shù)bsxfunrepmat
MATLAB多維數(shù)組
加速M(fèi)ATLAB運(yùn)行效率的知識和體會
[轉(zhuǎn)載]Matlab中求矩陣行數(shù)/列數(shù)/維數(shù)的函數(shù)
第3章 MATLAB在高等數(shù)學(xué)中的應(yīng)用
附錄B Matlab使用方法簡介
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服