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