加速matlab中的迴圈的一種方式

2021-08-17 20:51:55 字數 865 閱讀 8455

matlab中經常需要使用到迴圈操作,尤其是影象操作的時候,一般是直接進行迴圈操作,那樣每次計算都會新申請新記憶體,減慢了速度,如果提前申請好所需要的記憶體,向量化後,就可以明顯的加速運算過程,具體例子如下:

% 原始的方式,例子1

ticmax_cnt = 1000000;

fori=1:max_cnt

x(i) = i^2;

endtoc

%%% 加速方式1

ticmax_cnt2 = 1000000;

x = zeros(1,max_cnt2);

fori=1:max_cnt2

x(i)=i^2;

endtoc

%%% 加速方式2

ticmax_cnt3 = 1000000;

i = 1:max_cnt;

x = i.^2;

toc%% 例子2

% 原始的方式

tici = 0;

for t = 0:pi/4:2*pi

i = i+1;

x1(i) = sin(t);

endtoc

%%% 加速方式

tict1 = 0:pi/4:2*pi;

x2 = sin(t1);

toc%%

輸出如下:不同的處理器可能運算時間不同,但是規律是差不多的

% 例子1的輸出

時間已過 0.063602 秒。

時間已過 0.009146 秒。

時間已過 0.005297 秒。

% 例子2的輸出

時間已過 0.002826 秒。

時間已過 0.000596 秒。

一種ViewPager無限迴圈的實現

原理就是當總個數大於1時,getcount返回乙個最大值integer.max value,然後迴圈展示對應的 基於viewpager原理,快取3個檢視用於展示 並設定起始的位置。public static class looppageradapter extends pageradapter co...

佇列的一種實現 迴圈佇列

佇列的一種實現,迴圈佇列,通過使用固定長度陣列及首尾指標實現佇列的入隊 出隊等 class circularqueue 元素入隊,成功則返回true,否則false param value return public boolean put t value if isempty true tail ...

for迴圈的另一種方式

語法 for expr1 expr2 expr3 do done 解釋 expr1 控制變數的初始值 expr2 判定什麼時候退出迴圈 expr3 修正這個變數的值 範例 計算1到100之間的數值的和 這裡面 有倆種方式 最普通的是我們想到的是 1到100之間的數列,另一種是今天的小知識點的運用 這...