MATLAB總結(jié)
MATLAB基礎(chǔ)學(xué)習(xí)論文
【摘要】MATLAB的基礎(chǔ)性應(yīng)用、了解與程序設(shè)計。
MATLAB是由美國mathworks公司發(fā)布的主要面對科學(xué)計算、可視化以及交互式程序設(shè)計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計以及必須進(jìn)行有效數(shù)值計算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計語言(如C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計算軟件的先進(jìn)水平。
MATLAB的應(yīng)用范圍非常廣,包括信號和圖像處理、通訊、控制系統(tǒng)設(shè)計、測試和測量、財務(wù)建模和分析以及計算生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱(單獨提供的專用MATLAB函數(shù)集)擴(kuò)展了MATLAB環(huán)境,以解決這些應(yīng)用領(lǐng)域內(nèi)特定類型的問題。
求矩陣最值函數(shù):
C=max(A),當(dāng)A是矩陣時,返回各列最大值;當(dāng)A是向量(行或列)時返回向量的最大值。
C=max(A,B),A與B大小一樣,返回相應(yīng)位置的最大值。C=max(A,[],1),返回第一維(各列)最大值。C=max(A,[],2),返回第二維(各行)最大值。
[C,I]=max(...),返回最大值,以及該最大值的位置。注:min函數(shù)用法與max函數(shù)類似。
矩陣除法:X=A\\B;AX=BX=A/B;XA=B矩陣操作函數(shù)矩陣轉(zhuǎn)置:’
矩陣求行列式:det矩陣求逆:inv
矩陣特征值求取:eig
矩陣特征多項式系數(shù)求。簆loy矩陣對角元向量提。篸iag字符轉(zhuǎn)換(輸出)函數(shù):
sprintf("A(%d,%d)=%.1e\\n",m,n,A(m,n)),字符串轉(zhuǎn)換;
fprintf("A(%d,%d)=%.1e\\n",m,n,A(m,n)),字符串輸出至顯示屏;%d等表示輸出數(shù)值的格式,具體用法見help文件。矩陣求和函數(shù):
C=sum(A),當(dāng)A是矩陣時,返回各列之和;當(dāng)A是向量(行或列)時,返回所有元素之和。
C=sum(A,1),按列求最大值,返回一個行向量。C=sum(A,2),按行求最大值,返回一個列向量。求余函數(shù):
rem(X,Y),求X/Y的余數(shù),返回X-n.*Y,n=fix(X./Y)(朝0方向取整),符號與X的符號一致,當(dāng)Y=0時,返回NaN,該函數(shù)的返回值就是通常的求余數(shù)的結(jié)果。
眾所周知,MATLAB是一個功能強(qiáng)大的數(shù)學(xué)軟件,擅長于用矩陣運算完成各種數(shù)學(xué)功能。但是其程序需要在MATLAB環(huán)境下解釋執(zhí)行,效率不高。如果能將它強(qiáng)大的函數(shù)庫用于C語言,利用C來編譯執(zhí)行,MATLAB將能發(fā)揮更大的作用。所以,MATLAB從5.0開始已經(jīng)提供了與外部C/C++程序的應(yīng)用程序接口,為利用C語言調(diào)用MATLAB的函數(shù)提供了可能。但是MATLAB的接口發(fā)展很快,到MATLAB6.5已經(jīng)提供了對VC7.0的支持,同時對C的接口相對于5.X版本有了一定的改變,在MATLAB當(dāng)中,我們利用M文件來實現(xiàn)函數(shù),每一個M文件實現(xiàn)一個單獨的功能,這一點和C語言當(dāng)中的函數(shù)是相互對應(yīng)的。所以,如果我們能將MATLAB中的M文件轉(zhuǎn)化為C語言下的一個單個函數(shù),就能實現(xiàn)MATLAB中相應(yīng)的功能,整個過程可分為三個主要部分,用MATLAB將M文件翻譯為C語言文件,從生成的C語言文件提取出有用語句,編寫數(shù)據(jù)轉(zhuǎn)換程序?qū)崿F(xiàn)參數(shù)格式轉(zhuǎn)換。整個過程最終將把M文件翻譯成C語言當(dāng)中的一個具有相同功能的函數(shù),供其它的程序調(diào)用。
接下來幾章主要介紹了MATLAB的編程基礎(chǔ),這里引入了M文件的使用,M語言的語法與C語言非常類似,M語言函數(shù)文件能夠接受用戶的輸入?yún)?shù),并進(jìn)行計算,然后將計算的結(jié)果作為函數(shù)的返回值返回給調(diào)用者。在MATLAB中具有不同類型的函數(shù),分別為內(nèi)建函數(shù)、系統(tǒng)M函數(shù)、系統(tǒng)MEX函數(shù)文件、用戶自定義MEX函數(shù)文件和用戶自定義的M文件,其中內(nèi)建函數(shù)是MATLAB基本內(nèi)核提供的函數(shù)。
下面是學(xué)習(xí)這門課常用到的知識點:
demo-運行MATLAB提供的展示文件;clear-清除workspace中所有的變量;clc-清除命令窗口中的所有內(nèi)容;size-計算變量的維數(shù);length-計算變量的長度;^C-停止運行當(dāng)前程序;quit/exit-結(jié)束或離開MATLAB;系統(tǒng)預(yù)定義變量:eps(浮點運算誤差限),pi,Inf(無限),NaN(notanumber),i,j,ans(默認(rèn)變量)who(查找變量列表),whos(查看當(dāng)前內(nèi)存中的變量);save-將所有變量存入文件matlab.matsavemydat/savemydat.mat-將所有變量存入mydata.matsave文件名變量名列表,續(xù)行符:“”,Matlab區(qū)分大小寫,它的命令和函數(shù)全是小寫的,浮點運算的相對精度為eps,Matlab中eps2.22e-016,即大約保持16位有效數(shù)字。Matlab中的虛部單位:i,j,n=input("Pleaseinputn:")zeros(m,生成一個m行n列的零矩陣,m=n時可簡寫為zeros(n)n)ones(m,n生成一個m行n列的元素全為1的矩陣,m=n時可寫為)ones(n)eye(m,n)生成一個主對角線全為1的m行n列矩陣,m=n時可簡寫為eye(n),即為n維單位矩陣diag(X)若X是矩陣,則diag(X)為X的主對角線向量若X是向量,diag(X)產(chǎn)生以X為主對角線的對角矩陣tril(A)triu(A)提取一個矩陣的下三角部分提取一個矩陣的上三角部分rand(m,n產(chǎn)生0~1之間均勻分布的隨機(jī)矩陣m=n時簡寫為)rand(n)運用Simulink進(jìn)行系統(tǒng)仿真Simulink是一個用來對動態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的軟件包。它支持連續(xù)、離散及兩者混合的線性和非線性系統(tǒng),同時它也支持具有不同部分擁有不同采樣率的多種采樣速率的系統(tǒng)仿真。Simulink為用戶提供了一個圖形化的用戶界面,對于用方框圖表示的系統(tǒng),通過圖形界面,利用鼠標(biāo)點擊和拖拉方式,建立系統(tǒng)模型就像用鉛筆在在紙上繪制系統(tǒng)的方框圖一樣簡單,它與用微分方程和差分方程建模的傳統(tǒng)仿真軟件包相比,具有更直觀、更方便、更靈活的優(yōu)點,它不但實現(xiàn)了可視化的動態(tài)仿真,也實現(xiàn)了與MATLAB、C或FORTRAN語言,甚至和硬件之間的數(shù)據(jù)傳送,大大的擴(kuò)展了它的功能。
在MATLAB的主界面下點擊Simulink的快捷圖標(biāo),打開系統(tǒng)模型庫,在建立的M-file文中直接加入所需要的模塊,該系統(tǒng)的系統(tǒng)仿真模型如圖所示。
(注:其中den(s)=s36s211s3)
3StepAddGain1den(s)TransferFcnScope
通過上述系統(tǒng)的模擬仿真,我們得到了如下的系統(tǒng)階躍響應(yīng)的仿真圖
結(jié)論
通過本文的論述和實例分析可見,利用MATLAB分析控制系統(tǒng)穩(wěn)定性具有編程簡單、操作方便、處理速度快,分析結(jié)果準(zhǔn)確可靠等優(yōu)點。由此可見,MATLAB為工程技術(shù)人員分析、設(shè)計較優(yōu)的控制系統(tǒng)提供了強(qiáng)有力的工具。
在剛開始學(xué)習(xí)MATLAB這門課程的時候并沒有得到我的重視,因為它只是一個工具性的軟件,學(xué)習(xí)好自己的專業(yè)課程才是最重要的。直到MATLAB和自動控制原理兩門課程都進(jìn)行到重要的部分時候,我發(fā)現(xiàn)MATLAB現(xiàn)在就可以應(yīng)用到我們的專業(yè)課自動控制原理上,隨著學(xué)習(xí)的深入,控制系統(tǒng)的分析也變得越來越復(fù)雜,用傳統(tǒng)方法的計算,時間周期長而且準(zhǔn)確率不高。但是在學(xué)習(xí)完MATLAB軟件以后發(fā)現(xiàn),其實我們可以運用現(xiàn)在學(xué)習(xí)的MATLAB的知識可以分方便的解決自動控制原理方面的問題。MATLAB的軟件編程語言非常簡單易懂,更重要的是利用MATLAB軟件的Simulink軟件包可以非常方便的得到各種自動控制系統(tǒng)的響應(yīng)圖像,要比我們在實驗室的到相應(yīng)的圖像要方便簡單的多。
在更深入的學(xué)習(xí)了MATLAB軟件的使用以后,對它的強(qiáng)大功能有了更加深刻的認(rèn)識,我相信在今后的學(xué)習(xí)和工作當(dāng)中會有更多的地方運用到這一款軟件,給我們的學(xué)習(xí)和工作帶來更多的方便與快捷。
參考文獻(xiàn)
1、薛定宇,陳陽泉.基于MATLAB/Simulink的系統(tǒng)仿真技術(shù)與應(yīng)用.北京清華大學(xué)出版社,201*.
擴(kuò)展閱讀:matlab心得
學(xué)習(xí)Matlab心得體會
學(xué)習(xí)Matlab已經(jīng)有一段時間了,對Matlab編程有了一定的了解。下面談?wù)勛约航诘膶W(xué)習(xí)心得。
第一節(jié)的時候我們對Matlab有了初步的認(rèn)識:Matlab是“矩陣實驗室(matrixlaboratoy)”的縮寫,它是一種與數(shù)學(xué)水平密切相關(guān)的算法語言,專門針對科學(xué)、工程計算及繪圖的需求。Matlab的應(yīng)用范圍非常廣,包括信號和圖像處理、通訊、控制系統(tǒng)設(shè)計、測試和處理、財務(wù)建模和分析以及計算機(jī)生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱擴(kuò)展了Matlab環(huán)境,以解決這些領(lǐng)域的特定性問題。比如說在自動控制理論中用的比較多的是根軌跡,相平面,傳遞函數(shù),拉普拉斯變換,乃氏曲線等。在電機(jī)控制里面還有很多仿真實驗,也經(jīng)常用,對于輔助分析,也是很好用的。
我們已經(jīng)學(xué)習(xí)過C語言,不難發(fā)現(xiàn)Matlab的編程基本語法學(xué)習(xí)起來很快的,和C語言很類似,而且支持C語言函數(shù)的,或者說函數(shù)就是用C語言編的。大一時學(xué)習(xí)線性代數(shù),對矩陣又有了一定的了解,為今天學(xué)習(xí)Matlab打下了一定的基礎(chǔ)。從matlab的名字的來源可以看出,它以矩陣運算常見,在當(dāng)今的科學(xué)計算中,幾乎無處不用矩陣運算,這是它的優(yōu)勢得到了充分的體現(xiàn)。
隨著學(xué)習(xí)的課時的增加,我們對Matlab的有了深入而實質(zhì)性的了解。首先我們學(xué)習(xí)了Matlab的數(shù)學(xué)運算、程序設(shè)計、程序調(diào)試、Matlab繪圖及圖形句柄,最后我們又學(xué)習(xí)了Matlab的圖形用戶界面設(shè)計。經(jīng)過幾次實驗課,我們學(xué)會了M文件編程及程序調(diào)試,學(xué)會利用help這一命令對程序進(jìn)行解釋。
Matlab是以解釋方式工作的,即它對每條語句解釋后立即執(zhí)行,若有錯誤也立即做出反應(yīng),便于對程序進(jìn)行修改,大大減輕了編程和調(diào)試的工作量。它靈活、方便,程序調(diào)試手段豐富,調(diào)試速度快。Matlab語言像Basic和C語言一樣規(guī)定了矩陣的算算術(shù)運算符、關(guān)系運算符、邏輯運算符、條件運算符及賦值運算符等。Matlab的繪圖功是十分方便的,在調(diào)用繪圖函數(shù)時調(diào)整自變量可繪制出不同顏色的點、線、復(fù)線或多重線,這是通用的編程語言所不及的。Matlab的工作環(huán)境主要由命令窗口、圖形窗口、和文本編輯窗口組成。
當(dāng)然,matlab與其它計算機(jī)語言相比,有其獨特的優(yōu)點。特點如下:Matlab把編輯、編譯、連接以及執(zhí)行融為一體,加快了編寫、修改、和調(diào)試程序的速度,或者說是一種比VB還要簡單的語言。Matlab語言的內(nèi)容極為豐富,它的各種函數(shù)都與數(shù)學(xué)領(lǐng)域有關(guān),它的起點高,編程效率高,用戶使用方便,智能化程度高,人機(jī)交互性好,功能豐富,可擴(kuò)展性強(qiáng)。
通過這段時間的理論學(xué)習(xí)及實驗,我覺得要提高matlab編程能力的方法有以下幾點:(1)利用help,lookfor等功能對程序進(jìn)行編譯修改。(2)多上網(wǎng)查資料,上論壇,搜索帖子、發(fā)帖子問人(3)閱讀別人、特別是一些高級技術(shù)人員的程序,在閱讀的過程中進(jìn)行學(xué)習(xí),學(xué)習(xí)別人的編程方法。(4)還要有一本matlab的函數(shù)工具詞典,可以盡量多的熟悉matlab自帶的函數(shù),因為matlab自帶的函數(shù)特別多,基本上能夠滿足一般的數(shù)據(jù)和矩陣的計算。當(dāng)然了,正如所有的程序語言一樣,“3分課本7分上機(jī)”,一定要動手才行,不能光看。多想、多思考、多嘗試,才是正路。
記得上第一節(jié)課時,老師給我們放得ppt上有這樣一句話:學(xué)會Matlab將改變你的一生,網(wǎng)絡(luò)對你的改變將遠(yuǎn)遠(yuǎn)的超過一臺獨立的計算機(jī)!作為一名電氣工程及其自動化的一名學(xué)生,學(xué)好Matlab是非常有用的,擴(kuò)展就業(yè)方向,為將來就業(yè)打下良好的基礎(chǔ)!
最后,感謝老師您這么久以來對我們的諄諄教導(dǎo)!我們不會忘記您對我們的細(xì)心輔導(dǎo),不會忘記您在我們瞌睡的時候給我們的講的故事
友情提示:本文中關(guān)于《MATLAB總結(jié)》給出的范例僅供您參考拓展思維使用,MATLAB總結(jié):該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。