鄧昌瑞++周小紅++周木蘭++胡莉莉++聶水晶
摘 要:MATLAB的繪圖功能,可以為分析、解決問(wèn)題提供出一個(gè)好的平臺(tái)。本文通過(guò)對(duì)地面搜索與賽程安排問(wèn)題的探討,讓人們能從可視化的角度把一些較為復(fù)雜、難度較大問(wèn)題變得更具有操作性。特別是GUI的設(shè)計(jì),可以幫助缺乏計(jì)算機(jī)編程知識(shí)的人們直接處理在生活或工作中所遇到的復(fù)雜問(wèn)題,從而能為科學(xué)技術(shù)的推廣與應(yīng)用提供很大的方便。
關(guān)鍵詞:MATLAB繪圖 搜索問(wèn)題 賽程安排 源程序 GUI
中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)10(c)-0000-00
1 引言
MATLAB軟件在科學(xué)計(jì)算方面的功能非常強(qiáng)大,是科研人員用于分析、計(jì)算的最常用的工具。在MATLAB的各種功能中,最能體現(xiàn)其特點(diǎn)的是其運(yùn)算與圖形相結(jié)合功能:它能把一個(gè)非常復(fù)雜的問(wèn)題,描述成為過(guò)程簡(jiǎn)便、結(jié)果直觀、通俗易懂的問(wèn)題。更難能可貴的是,用MATLAB開(kāi)發(fā)出的GUI,能實(shí)現(xiàn)人機(jī)互動(dòng),不需要操作用戶掌握編程知識(shí),用戶通過(guò)簡(jiǎn)單的機(jī)械式操作便能得出自己所想要的結(jié)果。下面從通過(guò)兩個(gè)實(shí)例來(lái)說(shuō)明MATLAB在解決復(fù)雜問(wèn)題時(shí)在可視化方面的優(yōu)點(diǎn)。
2 MATLAB編程繪圖應(yīng)用實(shí)例
下面通過(guò)地面搜索問(wèn)題的實(shí)例來(lái)說(shuō)明MATLAB的編程繪圖功能的應(yīng)用。
近年來(lái),各種災(zāi)難頻發(fā),如自然災(zāi)害的地震、水災(zāi)、泥石流等,人類災(zāi)難中的空難、海難沉船等經(jīng)常危害人類的生命。人類在想辦法躲避這些災(zāi)難之時(shí),也必須在災(zāi)害已經(jīng)發(fā)生的情況下進(jìn)行相應(yīng)的救災(zāi)工作,即以最快速度搶救出在災(zāi)害中受傷及失蹤的人們,盡量減少因?yàn)?zāi)難所帶來(lái)的人員與財(cái)產(chǎn)損失。不過(guò),受災(zāi)害地區(qū)的交通與通迅一般都會(huì)陷入癱瘓狀態(tài),從而增加救災(zāi)難度。因此,人們?yōu)榱四軌蛟跒?zāi)后進(jìn)行快速搜索,需要在平時(shí)沒(méi)有災(zāi)害發(fā)生的情況下,做好預(yù)定救助方案以防患于未然。其中,用蜂窩理論來(lái)制訂搜索方案是最常用的一種方法。為了說(shuō)明這種搜索方法,我們可以假設(shè)出下面情景或條件:每個(gè)救災(zāi)人員所帶設(shè)備可以搜索到半徑為a米長(zhǎng)的距離,在大小為m米 n米的長(zhǎng)方形水平區(qū)域進(jìn)行全境搜索,確定好以最少的救援人員且能夠在規(guī)定的時(shí)間內(nèi)完成搜索任務(wù)。為了更好更直觀的把蜂窩理論的原理體現(xiàn)出來(lái),那么在解決問(wèn)題之前先把這種理論用MABATB編寫(xiě)出源程序,運(yùn)行后可以繪出相應(yīng)的圖形(見(jiàn)圖1),然后在此直觀的條件下(全覆蓋)再進(jìn)行處理就非常方便。相應(yīng)的源程序如下所示:
3 MATLAB GUI的設(shè)計(jì)與應(yīng)用實(shí)例
用MATLAB做成的GUI,能夠?qū)崿F(xiàn)人機(jī)交互,操作用戶不用掌握高深的編程語(yǔ)言,也不必要知道問(wèn)題的分析過(guò)程,用戶只要按照界面設(shè)定的命令進(jìn)行直接操作即可得到想要的結(jié)果。下面通過(guò)體育競(jìng)賽中的賽程安排問(wèn)題來(lái)簡(jiǎn)要介紹MATLAB GUI的設(shè)計(jì)與應(yīng)用。
在一些大型的團(tuán)體體育項(xiàng)目如藍(lán)球賽、足球賽、排球賽等運(yùn)動(dòng)中,參賽隊(duì)隊(duì)數(shù)較多,比賽場(chǎng)地也有主客場(chǎng)之分,為了能夠充分體現(xiàn)出競(jìng)賽的公平,那么賽程的安排就顯得非常重要。為了敘述方便,這里僅以假設(shè)各參賽隊(duì)實(shí)力水平相近或相同的情況下,要求參賽的兩隊(duì)在體力消耗上也相同的情況下如何安排比賽場(chǎng)次,也就是說(shuō)不能出現(xiàn)一支隊(duì)伍剛參賽完,馬上和已經(jīng)經(jīng)休息好的另一隊(duì)進(jìn)行比賽的情況出現(xiàn)。
首先根據(jù)題意畫(huà)出賽程安排的流程圖(見(jiàn)圖2)及相應(yīng)的GUI界面的設(shè)計(jì);然后根據(jù)流程圖寫(xiě)出相應(yīng)的響應(yīng)程序;最后運(yùn)行GUI,在相應(yīng)的窗口輸入競(jìng)賽隊(duì)數(shù),就可以得到相應(yīng)的賽程安排結(jié)果(見(jiàn)圖3)。響應(yīng)程序如下所示:
4 結(jié)束語(yǔ)
從上面所舉的兩個(gè)實(shí)例當(dāng)中可以看到,利用MATLAB的繪圖功能,可以為分析、解決問(wèn)題提供出一個(gè)好的平臺(tái),使人們能從可視化的角度把一些較為復(fù)雜、難度較大問(wèn)題變得更具有操作性。特別是GUI的設(shè)計(jì),可以幫助缺乏計(jì)算機(jī)編程知識(shí)的人們直接處理在生活或工作中所遇到的復(fù)雜問(wèn)題,從而能為科學(xué)技術(shù)的推廣與應(yīng)用提供很大的方便。
參考文獻(xiàn)
[1]劉慧穎.MATLAB R2007基礎(chǔ)教程[M].北京:清華大學(xué)出版社.2008
[2]徐利民.基于MATLAB的信號(hào)與系統(tǒng)實(shí)驗(yàn)教程[M].北京:清華大學(xué)出版社.2010
[3]駱文,趙強(qiáng).MATLAB在信號(hào)與系統(tǒng)中的應(yīng)用[J].2010
[4] 王正林等.精通MATLAB7.北京:清華大學(xué)出版社.2006
[5]陳楊等.MATLAB6.X圖形編程與圖像處理[M].北京:清華大學(xué)出版社.2006