• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Matlab程序單步調(diào)試方法及樣例分析

    2015-08-14 21:53:12王若楠田野馬玉峰劉立士
    現(xiàn)代電子技術(shù) 2015年15期
    關(guān)鍵詞:計算結(jié)果

    王若楠+田野+馬玉峰+劉立士

    摘 要: 針對單步調(diào)試法在程序調(diào)試中的重要作用,引用了一個具體的樣例,進行Matlab程序單步調(diào)試法的分析并逐步檢驗,根據(jù)運行結(jié)果與實際計算結(jié)果的比較,驗證了該方法在程序調(diào)試中的重要地位,并且該實驗結(jié)果還可以應(yīng)用于復(fù)雜的算法驗證中,具有很大的實用意義。

    關(guān)鍵詞: 程序調(diào)試;系統(tǒng)質(zhì)量;運行結(jié)果;計算結(jié)果;單步調(diào)試法

    中圖分類號: TN92?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)15?0139?03

    Single?step debugging method of Matlab program and instance analysis

    WANG Ruonan, TIAN Ye, MA Yufeng, LIU Lishi

    (School of Information Science and Engineering, Shenyang Ligong University, Shenyang 110159, China)

    Abstract: A specific instance is cited and analyzed by using single?step debugging of Matlab program. The debugging method is verified step by step. In comparison with operation results and actual computation results, the important status of the proposed method in program debugging is verified. The experimental results can be applied in complicated algorithm verification. The method has great practical significance.

    Keywords: program debugging; system quality; operation result; computation result; single?step debugging method

    0 引 言

    Matlab(Matrix Laboratory)作為一種高效的科學(xué)及工程計算語言,廣泛地應(yīng)用于數(shù)學(xué)分析、自動控制、系統(tǒng)仿真、人工智能等領(lǐng)域[1?5]。

    在Matlab應(yīng)用中,程序調(diào)試是保證系統(tǒng)質(zhì)量的關(guān)鍵步驟[6?7],其主要目的是發(fā)現(xiàn)程序中的錯誤并及時糾正。目前主要有直接調(diào)試和單步調(diào)試兩種方法。直接調(diào)試法主要應(yīng)用于簡單的Matlab程序,如程序設(shè)計中的流程控制問題;當(dāng)M文件很大或者M文件中含有復(fù)雜的嵌套時,則需要單步調(diào)試法對程序進行調(diào)試,文獻[8]采用單步調(diào)試法驗證信號處理指標(biāo)和實時性是否滿足要求,文獻[9]針對現(xiàn)場故障,采用繼電保護應(yīng)用軟件仿真驗證系統(tǒng),進行單步跟蹤調(diào)試,準(zhǔn)確判斷裝置保護程序邏輯正確性。

    上述研究只是應(yīng)用了單步調(diào)試方法,并沒有提到具體的調(diào)試步驟。因此,本文針對具體的樣例,進行了Matlab環(huán)境下程序的單步調(diào)試,該樣例可為復(fù)雜的Matlab程序設(shè)計提供依據(jù)和參考。

    1 單步調(diào)試法

    程序調(diào)試中常見的錯誤有以下三種:拼寫錯誤、語法錯誤與邏輯錯誤[1],Matlab會在程序運行出錯的時候提示是哪一行出現(xiàn)問題,但卻不能確定導(dǎo)致出錯的是哪一行,或者在運行過程中沒有報錯,但是得出的結(jié)果卻是不符合邏輯的。在這些情況下就需要單步調(diào)試解決問題。單步調(diào)式法具體可以由以下幾個步驟完成:

    (1) 設(shè)置斷點;

    (2) 程序運行到斷點時步進;

    (3) 在斷點處查看所調(diào)試的變量是否與邏輯值相符;

    (4) Step in,進入子程序,查看運行情況;

    (5) 在子程序中步進或者直接跳出進入主程序。

    2 樣例分析

    以公式[y=110n=010n?P(A(z,x)=n)+n=11∞P(A(z,x)=n)]為例,其中復(fù)合函數(shù)[A(z,x)]服從泊松分布,即[P(A(z,x)=n)]的概率[10]為:

    [P(A(z,x)=n)=(z?x)n?e-z?xn!] (1)

    將式(1)代入樣例公式得:

    [y=110y1+y2] (2)

    其中:

    [y1=n=010n?(z?x)n?e-z?xn!] (3)

    [y2=n=11∞(z?x)n?e-z?xn!] (4)

    仿真參數(shù)[z]設(shè)置為1,以[x=1]為例,使用單步調(diào)試法測試程序的正確性。圖1為該公式的主程序示意圖。

    圖1 主程序

    程序中的[s1(1,x)]和[s2(1,x)]分別對應(yīng)公式中的[y1]和[y2]。

    首先設(shè)置斷點,如圖2所示。

    圖2 主程序斷點設(shè)置

    單擊運行程序,當(dāng)程序運行到斷點處時即暫停,然后單擊單步運行,當(dāng)程序運行到第二個斷點時,即進入泊松子程序,如圖3所示。

    圖3 泊松子程序

    運行完這一步后,跳出子程序,回到主程序,此時程序的各參數(shù)運行結(jié)果如圖4所示。

    此時,將[z=1,][x=1]與[n=0]代入式(3),得出此時[y1]的累加結(jié)果為[y1=0],此結(jié)果與上述程序運行結(jié)果相符,繼續(xù)測試當(dāng)[n=1]時的結(jié)果。點擊繼續(xù)程序的運行,當(dāng)?shù)诙芜\行完時,各參數(shù)運行結(jié)果如圖5所示。

    圖4 [n=0]時的運行結(jié)果

    圖5 [n=1]時的運行結(jié)果

    此時,將[z=1,][x=1]與[n=1]代入式(3),得出此時[y1]的累加結(jié)果如圖6所示。

    圖6 [n=1]時的計算結(jié)果

    此結(jié)果與上述程序運行結(jié)果相符,繼續(xù)測試當(dāng)[n=2]時的運行結(jié)果。點擊繼續(xù)程序的運行,當(dāng)?shù)谌芜\行完時,各參數(shù)運行結(jié)果如圖7所示。

    圖7 [n=2]時的運行結(jié)果

    此時,將[z=1,][x=1]與[n=2]代入式(3),得出此時[y1]的累加結(jié)果如圖8所示。

    圖8 [n=2]時的計算結(jié)果

    此結(jié)果與上述程序運行結(jié)果相符,可以表明該主程序的第一部分是正確的。

    繼續(xù)設(shè)置斷點,如圖9所示。

    圖9 主程序第二次設(shè)置斷點

    單步運行程序,當(dāng)運行完一次后,各參數(shù)運行結(jié)果如圖10所示。

    圖10 [n=11]時的運行結(jié)果

    將[z=1,][x=1]與[n=11]代入式(4),得出此時[y2]的累加結(jié)果如圖11所示。

    圖11 [n=11]時的計算結(jié)果

    此結(jié)果與上述程序運行結(jié)果相符,繼續(xù)測試當(dāng)[n=12]時的運行結(jié)果。點擊繼續(xù)程序的運行,當(dāng)?shù)诙芜\行完時,各參數(shù)運行結(jié)果如圖12所示。

    圖12 [n=12]時的運行結(jié)果

    將[z=1,][x=1]與[n=12]代入式(4),此時[y2]的累加結(jié)果如圖13所示。

    圖13 [n=12]時的計算結(jié)果

    此結(jié)果與上述程序運行結(jié)果相符,可以表明該主程序的第二部分是正確的。

    綜合上述的分析,該程序的第一部分及第二部分對于每次累加后[y1]和[y2]的結(jié)果都是正確的,所以,其編寫是正確的。因此,該樣例成功運用單步調(diào)試法完成了本程序的測試,為后續(xù)大數(shù)量數(shù)據(jù)的運行提供了基礎(chǔ)。

    3 結(jié) 論

    通過以上實例的分析,驗證了單步調(diào)試法在程序測試中的重要作用。通過此方法,程序員可以通過Matlab搭建系統(tǒng)模型,利用Matlab軟件本身的計算優(yōu)勢,在程序編譯過程中快速找到錯誤所在,提高編寫程序的效率,還可以應(yīng)用于復(fù)雜的算法測控中,具有很強的實用價值。

    注:本文通訊作者為田野。

    參考文獻

    [1] 許波,劉征.Matlab工程數(shù)學(xué)應(yīng)用[M].北京:清華大學(xué)出版社,2000.

    [2] 王向東,戎海武,文翰.數(shù)學(xué)實驗[M].北京:高等教育出版社,2004.

    [3] 薛定宇,陳陽泉.高等應(yīng)用數(shù)學(xué)問題的Matlab求解[M].北京: 清華大學(xué)出版社,2004.

    [4] 黃忠霖.控制系統(tǒng)Matlab計算機仿真[M].北京:國防工業(yè)出版社,2004.

    [5] 姜啟源,邢文訓(xùn),謝金星,等.大學(xué)數(shù)學(xué)實驗[M].北京:清華大學(xué)出版社,2005.

    [6] 李建新,劉乃安,劉繼.現(xiàn)代通信系統(tǒng)分析與仿真[M].西安:西安電子科技大學(xué)出版社,2001.

    [7] 劉志儉.Matlab應(yīng)用接口用戶指南[M].北京:科學(xué)出版社,2000.

    [8] 劉春.偽碼調(diào)相中斷連續(xù)波雷達信號處理系統(tǒng)的設(shè)計與實現(xiàn)[D].南京:南京理工大學(xué),2010.

    [9] 朱寧,吳崇昊,李志堅,等.一種繼電保護應(yīng)用軟件仿真驗證系統(tǒng)的設(shè)計[J].電力自動化設(shè)備,2012,32(6):140?144.

    [10] 毛用才,胡奇英.隨機過程[M].西安:西安電子科技大學(xué)出版社,2006.

    猜你喜歡
    計算結(jié)果
    4種估算腎小球濾過率計算公式對患者腎功能的評估結(jié)果比較
    不等高軟橫跨橫向承力索計算及計算結(jié)果判斷研究
    甘肅科技(2020年20期)2020-04-13 00:30:40
    勘誤說明
    存放水泥
    趣味選路
    扇面等式
    基于MIKE21二維數(shù)值模擬的不同橋墩概化方式下河道壅水計算結(jié)果對比分析
    腦筋急轉(zhuǎn)彎
    超壓測試方法對炸藥TNT當(dāng)量計算結(jié)果的影響
    噪聲對介質(zhì)損耗角正切計算結(jié)果的影響
    修文县| 都兰县| 曲阳县| 津南区| 闽侯县| 郴州市| 女性| 丰城市| 兴和县| 石门县| 茂名市| 遂溪县| 蓬安县| 陵川县| 岑巩县| 泰安市| 招远市| 友谊县| 玉屏| 项城市| 金阳县| 新巴尔虎左旗| 新龙县| 慈利县| 汶上县| 新田县| 东源县| 延庆县| 奉节县| 阿城市| 竹山县| 尉氏县| 高雄县| 周宁县| 泽普县| 同仁县| 龙南县| 山东| 肃北| 东乡族自治县| 即墨市|