• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Matlab工程應用核心內(nèi)容與講授方法探討

      2022-05-30 10:48:04潘昀廖蕓蓉薛大文白興蘭李磊
      電腦知識與技術(shù) 2022年31期
      關(guān)鍵詞:旋轉(zhuǎn)體編程圖形

      潘昀 廖蕓蓉 薛大文 白興蘭 李磊

      摘要:Matlab作為一門重要的編程語言,目前從工程應用的角度出發(fā),對Matlab重、難點尚未有較系統(tǒng)詳細的總結(jié)。該文將從三個方面對Matlab核心內(nèi)容進行講授:1) 矩陣的處理函數(shù);2) 函數(shù)之間的包含關(guān)系;3) 圖形的編程方法,讓初學者加深理解Matlab中的核心內(nèi)容。

      關(guān)鍵詞:Matlab;編程;函數(shù);旋轉(zhuǎn)體;圖形

      中圖分類號:G643.2 ? ? ?文獻標志碼:A

      文章編號:1009-3044(2022)31-0046-03

      Matlab的全稱是Matrix Laboratory,即矩陣和實驗室。矩陣在Matlab中應用廣泛,尤其在處理數(shù)據(jù)方面占據(jù)優(yōu)勢。目前,高校學生在學習Matlab時,對于很多重點內(nèi)容細節(jié)的學習不夠,導致在解決實際工程問題時會遇到麻煩。目前,對于Matlab的研究大多集中在基于Matlab解決實際問題,高云峰[1]利用Matlab對系列力學問題進行了求解;潘昀等[2]以Matlab為載體講授最小二乘法;許小勇等[3]基于Matlab編寫了三次樣條插值函數(shù)程序;何德峰等[4]基于Matlab軟件,對現(xiàn)代控制理論仿真實驗教學進行了研究。又或是僅對教學方式進行研究,王海龍等[5]對Matlab在高職數(shù)學中的應用進行了研究;韓濤等[7]基于Matlab對電力電子技術(shù)實驗教學改革進行了研究。

      對于Matlab的核心內(nèi)容的講授方法介紹相關(guān)研究較少,市面上尚有的參考書籍也很少做多簡而精。在結(jié)合Matlab解決實際問題時,只有對核心內(nèi)容理解透徹才能夠得出準確的結(jié)果,因此對Matlab工程應用核心內(nèi)容的把握以及對核心內(nèi)容的講授方法均至關(guān)重要。

      1 矩陣的處理函數(shù)

      在Matlab中,矩陣應用中向量和矩陣的創(chuàng)建是基礎(chǔ),而點運算和矩陣的數(shù)學運算用于計算實際工程應用中復雜的問題。矩陣在處理數(shù)據(jù)上,具有高效、靈活、簡便、精度高等優(yōu)點。常見的矩陣中的函數(shù)有l(wèi)ength、eye、zeros、meshgrid、reshape、diag、repmat等,其中有些函數(shù)比較復雜、具有較強的混淆性,不易理解,單看函數(shù)介紹,初學者無法完全掌握。對數(shù)據(jù)進行生成、插值、重新組合等高階處理時,meshgrid和reshape函數(shù)使用較多且具有一定難度。因此,本論文將對meshgrid函數(shù)和reshape函數(shù)進行詳細探討,通過實例講授如何高效創(chuàng)建矩陣,讓初學者可以對矩陣有一個更加深入的了解。

      1.1 meshgrid

      1.1.1 meshgrid真實含義

      meshgrid函數(shù)的本質(zhì)就是for循環(huán),很大程度提高了Matlab的運算速度,如圖1進行了for循環(huán)和meshgrid函數(shù)創(chuàng)建二維網(wǎng)格和三維數(shù)組的對比,可以很直觀看出meshgrid函數(shù)的優(yōu)勢。在學習meshgrid函數(shù)的過程中,存在的難點大致可以分為三點:1) 對meshgrid函數(shù)輸出和輸入的對應關(guān)系不清楚;2) 對meshgrid函數(shù)生成矩陣的行、列排列規(guī)律不理解;3) 三維繪圖函數(shù)調(diào)用meshgrid函數(shù)生成的三維數(shù)組。本文將詳細探討該函數(shù)的基本使用方法并通過一些簡單的案例來進行說明。meshgrid函數(shù)的調(diào)用方法如:[X,Y]=meshgrid(x,y);[X,Y]=meshgrid(x);[X,Y,Z]=meshgrid(x,y,z);[X,Y,Z]=meshgrid(x)。

      上述四個語法中x,y,z都是一維數(shù)據(jù),在同一語法中矩陣X、Y、Z是同維度矩陣。創(chuàng)建二維網(wǎng)格時,對于X矩陣,向量x確定矩陣中行的值,行數(shù)由向量y決定;對于Y矩陣,向量y確定矩陣中列的值,列數(shù)由向量x決定。創(chuàng)建三維數(shù)組時,數(shù)組數(shù)量由向量z決定,即向量z中包含元素數(shù)量。矩陣X和Y行列生成規(guī)律和二維網(wǎng)格一樣,矩陣Z中元素值由向量z中元素值決定,每一組對應向量z中的一個元素。使用meshgrid函數(shù)相較for循環(huán)更為高效、簡便,只需要簡單一行代碼即可代替for循環(huán)體,很大程度上提高了運算效率,避免了煩瑣的循環(huán)。

      1.1.2 meshgrid

      函數(shù)meshgrid一般用于生成二維網(wǎng)格或三維圖形所需要的網(wǎng)格數(shù)據(jù),進行數(shù)據(jù)可視化時,可以使用meshgrid函數(shù)處理數(shù)據(jù)進而繪制三維圖形。本論文將直接結(jié)合實例,讓初學者可以更加直觀地理解如何使用meshgrid函數(shù)數(shù)據(jù)可視化。

      1.2 reshape

      在Matlab中,reshape函數(shù)又稱重構(gòu)數(shù)組。即把矩陣重新進行構(gòu)造,得到想要的新維度矩陣,但前后兩個矩陣中的元素不變,只是排列順發(fā)生了改變。跟meshgrid函數(shù)一樣,reshape函數(shù)的本質(zhì)也是for循環(huán),其存在也是為了優(yōu)化for循環(huán),提高Matlab的運算效率。

      reshape函數(shù)的調(diào)用方法有:1) B = reshape(A,sz);2) B = reshape(A,sz1,...,szN)。語法1中,sz是一個大小向量,必須有兩個及以上元素構(gòu)成,決定矩陣B的維度。向量sz的數(shù)組元素乘積和矩陣A數(shù)組元素的數(shù)目相等,也即矩陣B是在以矩陣A的元素數(shù)量為限制條件的前提下進行構(gòu)造的。語法2中,sz1,...,szN,sz1和sz2代表著矩陣的行列數(shù)量,在此之后的szN跟矩陣B的維度有關(guān)。在使用語法2時,用[]符號代替sz,...,szN中一個維度可以自動計算維度大小。對于矩陣B,是按照矩陣A列從左到右的順序進行元素讀取生成的,元素數(shù)量跟矩陣A保持一致。

      reshape函數(shù)一般用于改變矩陣大小、矩陣維度??梢允苟S矩陣和三維矩陣相互轉(zhuǎn)化,當二維矩陣轉(zhuǎn)換成三維矩陣時,可以把數(shù)據(jù)處理得更加詳細直觀;當三維矩陣轉(zhuǎn)化為二維矩陣時,可以簡化輸出結(jié)果,使所有維度都排列在一起。無論是二維矩陣轉(zhuǎn)換成三維矩陣還是三維矩陣轉(zhuǎn)換成二維矩陣,其原理都是一樣的。

      1.3 矩陣創(chuàng)建實例

      在解決實際工程問題時,一般需要先對問題進行數(shù)學建模,在建模過程中通常涉及矩陣。一般來說,使用矩陣進行繪圖可以分為兩個階段,一是繪制網(wǎng)格階段;二是在網(wǎng)格的基礎(chǔ)上繪制旋轉(zhuǎn)體。因此,本節(jié)將通過講授實際應用中使用較多的幾個實例來對meshgrid和reshape函數(shù)進一步展開說明,讓初學者在今后使用Matlab建模時作為參考。

      1.3.1 畫網(wǎng)格

      網(wǎng)格可以分為二維網(wǎng)格和三維網(wǎng)格,使用meshgrid繪制網(wǎng)格是高效、便捷的,為詳細展示該函數(shù)使用方法,揭開其中原理,教學中應將通過畫二維網(wǎng)格、圓弧網(wǎng)格以及波面三個案例進行演示,如圖1所示。

      1.3.2 畫旋轉(zhuǎn)體

      在使用Matlab建模時,模型會涉及各種各樣的形狀。如對海洋資料浮標建模時,浮標的形狀有球型,有圓柱形等。因此,教學中應將以球形、圓柱形、圓錐形、圓臺形這幾個較為常見的形狀作為實例進行講授,如圖2。

      2 函數(shù)包含關(guān)系

      當函數(shù)過多時,可以選擇將不同的函數(shù)儲存在不同的函數(shù)文件中,需要調(diào)用時進行讀取。一般來說,創(chuàng)建函數(shù)有三種方式:1) function命令創(chuàng)建函數(shù)文件;2) inline命令創(chuàng)建函數(shù)文件;3) 子函數(shù)創(chuàng)建函數(shù)文件。在編寫大規(guī)模代碼時,會涉及多個函數(shù)的創(chuàng)建和調(diào)用,因此,必須要先明確函數(shù)之間的關(guān)系才能保證在使用過程中不會混淆出錯。

      2.1 函數(shù)與函數(shù)文件

      2.1.1 定義

      函數(shù)文件是指以function為開頭的腳本文件,對function命令結(jié)尾加上end語句就構(gòu)成了一個函數(shù),一個function對應一個end語句。函數(shù)內(nèi)定義的所有變量名對函數(shù)而言都是局部的,既不會影響到其他程序文件和函數(shù)文件中同樣的變量名,也不會被其他影響[11]。函數(shù)文件中可以包含一個或多個函數(shù),當包含多個函數(shù)時,函數(shù)之間的關(guān)系就變成了主函數(shù)和子函數(shù)。

      2.1.2 主函數(shù)和子函數(shù)

      在函數(shù)文件中,一個M文件只能有一個主函數(shù),且主函數(shù)名稱和M文件名稱必須一致。第一個function創(chuàng)建的函數(shù)稱為主函數(shù),其他function創(chuàng)建的函數(shù)都為子函數(shù),且子函數(shù)只能由主函數(shù)和主函數(shù)文件中其他子函數(shù)調(diào)用[7]。一個主函數(shù)可以有多個子函數(shù),且可以對子函數(shù)進行調(diào)用,使用子函數(shù)可以讓代碼更加具有觀賞性邏輯性。

      2.2 函數(shù)和程序文件

      2.2.1 定義

      程序文件又稱腳本文件,可以將其分為函數(shù)文件和定義函數(shù)文件兩類。由上一節(jié)可知,函數(shù)文件是以function為開頭的程序文件,反之為定義函數(shù)文件。定義文件可以對函數(shù)文件進行調(diào)用,可以用于編寫特定的程序并衍生為類,圖3為程序文件的包含關(guān)系圖。

      2.2.2 函數(shù)句柄

      函數(shù)句柄是一種引用函數(shù)的方法,由“@+函數(shù)名”構(gòu)成。當一個函數(shù)的參數(shù)是函數(shù)時,就需要使用函數(shù)句柄,它可以把一個計算方法以變量的形式進行傳遞。函數(shù)句柄可以提高代碼的運行速度,創(chuàng)建并運行了函數(shù)句柄后,可以隨時進行調(diào)用。函數(shù)句柄的用途可以分為兩類,一是用于命名,即創(chuàng)建函數(shù)句柄對函數(shù)進行調(diào)用;二是用于匿名,即傳遞給函數(shù)句柄特定值進行計算后返回。

      3 圖形編程方法

      清晰且直觀的圖形可以讓研究成果顯得更加具有邏輯性和可讀性。Matlab作為一款集多功能一身的編程軟件,在繪圖方面極具優(yōu)勢,它可以批量出圖,圖形的清晰度也令人滿意。因此,越來越多的學者都會使用Matlab對數(shù)據(jù)進行處理出圖,熟悉掌握圖形的編程方法可以提高處理數(shù)據(jù)和繪制圖形的效率和質(zhì)量。

      3.1 圖形輸出大小

      在繪制二維曲線圖時,一般要注意圖框的大小尺寸,坐標的設(shè)置,字體的大小類型,以及對曲線的標注等問題。[100,100,6.07×100,3.64×100]中前兩個數(shù)100,100指圖框離電腦屏幕左下角的橫縱距離,后兩個數(shù)指輸出圖形的長寬。其中2.77×100和3.64×100是根據(jù)Word頁面布局進行換算后得到,使用Word版本為例:A4紙張寬為21cm,其左右邊距各位3.18cm,當使用[100,100,100,100]時輸出圖形,圖形的長寬為2.41cm×2.89cm,在這一標準下,Matlab輸出圖形尺寸和Word之間的關(guān)系式為:“100=2.41cm”;故想要輸出圖形占滿Word屏幕,則輸出圖形長需接近14.64cm,同時為了圖形美觀,設(shè)置輸出圖形長寬之比為3:5,即輸出圖形寬需要接近8.78cm。

      3.2 動態(tài)圖方法

      除繪制二維曲線圖外,通過Matlab繪制的動態(tài)圖形可以直觀生動地反映數(shù)據(jù)的變化情況,本小節(jié)將講授動態(tài)圖形的簡易畫法,為初學者提供思路。for循環(huán)中clf和pause命令相結(jié)合生成動態(tài)圖形。

      3.3 生成動畫

      對于三維結(jié)構(gòu)物的運動情況,如海浪的運動,除二維曲線變化圖和動態(tài)圖形外,往往需要動畫的形式才能描述清楚其運動情況,在Matlab中,動畫是依靠圖片形成幀數(shù)然后進行播放生成的。主要語句有:O=VideoWriter('文件名.avi'); aviobj.FrameRate=5; close(O)。

      4 結(jié)束語

      本文旨在探討Matlab工程應用核心內(nèi)容與講授方法,通過對矩陣中meshgrid和reshape兩個重要函數(shù),函數(shù)之間的兩個包含關(guān)系,以及Matlab中輸出圖形方法,給初學者提供思路,為今后工程計算和科技論文寫作以及編寫程序打下基礎(chǔ)。

      1) 首先介紹了矩陣處理中較為常見且具有一定難度的兩個函數(shù)meshgrid和reshape,不但對兩個函數(shù)的使用語法和注意事項進行了講授,應結(jié)合實例對兩個函數(shù)進行展開介紹說明,讓初學者對兩個函數(shù)有了更加深入的認識。

      2) 其次著重講授了函數(shù)之間存在的包含關(guān)系,即函數(shù)與函數(shù)文件和函數(shù)和程序文件之間的關(guān)系,詳細介紹了函數(shù)的調(diào)用方式、主函數(shù)與子函數(shù)之間的關(guān)系以及函數(shù)句柄的使用,讓初學者可以更加具體深入了解該如何使用函數(shù)。

      3) 最后應該學會使用編寫繪圖模板,包括:二維繪圖、動態(tài)圖形輸出、動畫輸出,在科技論文寫作展示成果時,結(jié)合圖形進行講授會使得文章更加直觀簡潔。

      參考文獻

      [1] 高云峰.Matlab求解理論力學問題系列(一)剛體系統(tǒng)及桁架受力問題[J].力學與實踐,2021,43(2):256-261.

      [2] 許小勇,鐘太勇.三次樣條插值函數(shù)的構(gòu)造與Matlab實現(xiàn)[J].兵工自動化,2006,25(11):76-78.

      [3] 潘昀,劉燦,張建偉,等.淺談“最小二乘法原理”教學方法[J].科教文匯(中旬刊),2019(9):51-53,56.

      [4] 何德峰,俞立,徐建明.基于Matlab的現(xiàn)代控制理論實驗教學實踐[J].實驗技術(shù)與管理,2016,33(3):123-126.

      [5] 王海龍,徐愛華,賈敬堂,等.淺談Matlab在高職數(shù)學教學中的應用[J].邯鄲職業(yè)技術(shù)學院學報,2021,34(3):37-40.

      [6] 韓濤,肖波,詹習生,等.基于Matlab的電力電子技術(shù)實驗教學改革[J].湖北師范大學學報(自然科學版),2021,41(4):103-107.

      [7] Magrab E B.Matlab原理與工程應用with applications from mechanical,aerospace,electrical,and civil engineering[M]. 高會生,李新葉,胡智奇,等譯.北京:電子工業(yè)出版社,2006.

      【通聯(lián)編輯:聞翔軍】

      收稿日期:2022-03-16

      基金項目:浙江海洋大學研究生一流課程建設(shè)項“MATLAB工程計算與優(yōu)化”(111810641210)

      作者簡介:潘昀(1989—) ,男,安徽阜陽人,講師,博士,研究方向為計算工程流體力學。

      猜你喜歡
      旋轉(zhuǎn)體編程圖形
      編程,是一種態(tài)度
      少先隊活動(2021年2期)2021-03-29 05:41:04
      元征X-431實測:奔馳發(fā)動機編程
      編程小能手
      學生天地(2020年17期)2020-08-25 09:28:48
      基于柱殼法及柱坐標系求解旋轉(zhuǎn)體的體積
      紡織機上誕生的編程
      旋轉(zhuǎn)體體積的探討
      基于微元法的旋轉(zhuǎn)體體積問題的一題多解
      旋轉(zhuǎn)體容球的一個有趣共性再探究
      考試周刊(2016年82期)2016-11-01 13:00:24
      分圖形
      找圖形
      防城港市| 即墨市| 光泽县| 日照市| 五河县| 北川| 宿松县| 海兴县| 正镶白旗| 清徐县| 剑阁县| 东台市| 达孜县| 海阳市| 和田县| 胶州市| 含山县| 中西区| 镇平县| 康平县| 蒲江县| 阿拉善左旗| 万山特区| 方山县| 石门县| 聂拉木县| 新乐市| 亳州市| 奇台县| 松原市| 齐河县| 资中县| 达州市| 思茅市| 清涧县| 都安| 澜沧| 房产| 女性| 嘉峪关市| 都兰县|