在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于matlab程序運行時間計算方法的思考

            關于matlab程序運行時間計算方法的思考

            作者: 時間:2015-09-12 來源:網絡 收藏

              簡介:在中,為了驗證比較兩個算法直接的效率,我們常常需要計算某段程序的運行時間,而常用的也就是三種方法:

            本文引用地址:http://www.biyoush.com/article/280048.htm

              1、tic和toc命令對;格式如下面一段程序。

              tic;

              a=0;

              for i1=1:100000

              for j1=1:10000

              a=a+1;

              end

              end

              toc;

              tic命令表示開啟一個的計時器,toc則表示停止之前與之對應的tic開啟的計時器,并得到最后的計時結果,上一段程序結果如下:

              Elapsed time is 3.720372 seconds.

              2、clock加etime函數;程序結構如下面一段。

              t1=clock;

              b=0;

              for i2=1:100000

              for j2=1:10000

              b=b+1;

              end

              end

              t2=clock;

              etime(t2,t1)

              其中,clock命令是獲取系統(tǒng)的時間矢量,而etime函數則是計算兩個時間矢量之間的差并以秒單位形式表示。clock作為時間矢量包含了年月日時分秒六個參數,如在單獨執(zhí)行這一命令可得到:

              >> clock

              ans =

              1.0e+003 *

              2.0120 0.0080 0.0180 0.0140 0.0180 0.0507

              3、cputime命令計算運行時間;

              m1=cputime;

              c=0;

              for i3=1:100000

              for j3=1:10000

              c=c+1;

              end

              end

              m2=cputime;

              m=m2-m1

              cputime命令是獲取matlab自啟動后所占用cpu的運行時間,這里需要詳細介紹下,cputime不是代表matlab的運行時間,而是指matlab占用cpu的時間。大家知道,window系統(tǒng)的多進程管理類似于我們所說的時分復用概念,即cpu完成多進程是通過時間劃分來實現(xiàn)的,這一時刻運行的是進程一,下一時刻運行的是進程二,由于速度非???,所以對于用戶來說看起來就是同時運行的。我們可以做個試驗,在一打開matlab的時候,執(zhí)行cputime命令得到:

              >> cputime

              ans =

              13.1197

              說明我們matlab打開用了13秒多的時間,大家可以自我感覺下是不是這個時間。

              既然大概的原理我們知道了就可以來比較比較這三者的區(qū)別。首先,tic和toc的方法是最優(yōu)的,這也是matlab幫助中提倡的一種。從精度上來說,第一種方法精度最高,由于是matlab自身的計時器,精度上要比后兩者高,其次是cputime,最低的是clock只有毫秒級的精度。再者,從最接近實際電路運行時間上來說,也是第一種方法最為接近,這點我們仔細分析下。

              我們知道,想得到某段程序在matlab中運行的時間,目的是在于對該程序所實現(xiàn)的算法在實際電路中處理的時間有個大概的估計與比較,所以我們最想要的是它在cpu運行的時間。這一點第二種方法則不太適合了,因為它采用的是系統(tǒng)時間作為計算參數,在這個時間內肯定還有著別的后臺運行程序等。而對于第三種方法,cputime所對應的測量對象是matlab整個程序,而并不是對于我們所測量的這段程序而言(matlab也可以看做是一個編譯器,對我們編寫的m代碼進行編譯,所以它還需要進行著別的操作)。再看看我們的第一種matlab推薦的方法,tic是啟動一個matlab內部的計時器,所以說它也是一種基于cpu時間的計時,而且更重要的是,計時開始的時間是我們設定在代碼前的,可以說tic和toc中間對于matlab來說,大部分時間就是運行這段代碼,所以時間上是最接近實際在電路中運行的時間的。

              關于上面的比較,個人閑來無事做了個實驗:同樣的代碼,將matlab在任務管理器中的進程優(yōu)先級進行改動,我們可以明顯看到運行時間上的變化。

            矢量控制相關文章:矢量控制原理


            關鍵詞: matlab

            評論


            相關推薦

            技術專區(qū)

            關閉