Matlab全套全套课件_第1页
Matlab全套全套课件_第2页
Matlab全套全套课件_第3页
Matlab全套全套课件_第4页
Matlab全套全套课件_第5页
已阅读5页,还剩451页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Matlab概述Matlab(矩陣實驗室)是MATrixLABoratory的縮寫,是一款由美國TheMathWorks公司出品的商業數學軟體。Matlab是一種用於演算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和互動式環境。1.1Matlab簡介除了矩陣運算、繪製函數/數據圖像等常用功能外,Matlab還可以用來創建用戶介面及與調用其他語言(包括C,C++和FORTRAN)編寫的程式。儘管Matlab主要用於數值運算,但利用為數眾多的附加工具箱(Toolbox)它也適合不同領域的應用。另外還有一個配套軟體包Simulink,提供了一個可視化開發環境,常用於系統模擬、動態/嵌入式系統開發等方面。1.1.1Matlab的發展

1980年,Moler教授用Fortran語言編寫了集命令翻譯、科學計算於一身的一套互動式軟體系統。1984年,Moler等成立了MathWorks的公司,用C語言完全改寫Matlab,並推出第一個商業版。此後,增添圖形圖像處理、符號運算、以及與其他流行軟體的介面功能,使得Matlab的功能越來越強大。到九十年代,在國際上30幾個數學類科技應用軟體中,Matlab在數值計算方面獨佔鰲頭。1984第一個商業化的DOS版本1992MATLAB4.01994MATLAB4.21997MATLAB5.01999MATLAB5.32000MATLAB6.02002MATLAB6.52004MATLAB7.02006MATLAB7.2Release2006a2006MATLAB7.3Release2006b2008MATLAB7.6Release2008a2008MATLAB7.7Release2008b……1.1.1Matlab的發展(續) 1984年,Matlab1.0(DOS版,182K,20多個函數) 1992年,Matlab4.0(93年推出Windows版,加入simulink)

1994年,Matlab4.2(得到廣泛重視和應用) 1999年,Matlab5.3(真正實現32位運算)

2002年,Matlab6.5(採用JIT加速器) 2004年,Matlab7.0(Release14)

…1.1.1Matlab的發展(續)

2012年3月,Matlab7.14(Release2012a)

2012年9月,Matlab8.0(Release2012b,本課程演示的版本)

2013年,Matlab8.1(Release2013a,目前最新版本)

說明: 到7.1版為止,MATLAB的釋放編號均以數字來命名,例如R7,R12.1,R14SP1等;從7.2版開始,釋放編號以年份來命名,每年3月份推出的用a表示,9月份推出的則以b表示。1.1.2Matlab的歷史影響MATLAB就是這樣經過了近30年的專門打造、20多年的千錘百煉,它以高性能的數組運算(包括矩陣運算)為基礎,不僅實現了大多數數學演算法的高效運行函數和數據可視化,而且提供了非常高效的電腦高級編程語言,在用戶可參與的情況下,各種專業領域的工具箱不斷開發和完善,MATLAB取得了巨大的成功,已廣泛應用於科學研究、工程應用,用於數值計算分析、系統建模與仿真。1.1.2Matlab的歷史影響(續)早在20世紀90年代初,歐美等發達國家的大學就將MATLAB列為一種必須掌握的編程語言。近幾年來,國內的很多大學也將MATLAB列為了本科生必修課程。MATLAB軟體功能之強大、應用之廣泛,已成為為21世紀最為重要的科學計算語言。可見學習掌握這一工具的重要性。

1.1.3Matlab的基本組成Matlab軟體主要由主包、Simulink動態系統仿真和工具箱(Toolbox)三大部分組成。主包包括了Matlab語言、數學函數庫、工作環境、圖形處理系統和應用程式介面五部分。Simulink是用於系統仿真的互動式圖形系統,是Matlab非常重要的共生產品。Toolbox實際是用Matlab的基本語句編成的開放式各種副程式集,用於解決各專業領域的特定問題,例如:控制系統、信號處理、圖像處理、模糊集合、神經網路、小波分析等。1.1.3Matlab的基本組成(續)

MATLAB產品由若干模組組成,不同的模組完成不同的功能,其中有:

實際上MATLAB本身就是一個極其豐富的資源庫,那麼應該從哪一部分開始著手、學習使用MATLAB呢?這就有必要瞭解這一軟體產品的體系結構。MATLABCompiler這種編譯器可以將MATLAB程式檔編譯生成標準的C/C++語言檔,而生成的標準的C/C++檔可以被任何一種C/C++編譯器編譯生成函數庫或可執行檔,以提高程式的運行效率。MATLABMATLABToolboxesMATLABCompilerSimulinkSimulinkBlocksetsReal-TimeWorkshopStateflowStateflowCoder由這些模組產品之間的關係如上圖1.1.3表示。圖1.1.3MATLAB產品體系結構圍繞著MATLAB這個計算核心,形成了諸多針對不同應用領域的演算法程式包,被稱為專用工具箱(Toolbox),這些工具箱的列表以及每個工具箱的使用詳見MATLAB線上幫助文檔。MATLAB本身所提供的工具箱大概有40多個,另外還有其他公司或研究單位開發提供的工具箱,這些工具箱的總數已有100多個,而且新的工具箱還在不斷增加。如果你有特別的應用領域,可以首先到網上查找是否已有相關的工具箱,很可能已有人將你要做的應用程式作成工具箱了。Simulink是窗口圖形方式的、專門用於連續時間或離散時間的動態系統建模、分析和仿真的核心。Real-TimeWorkshop是一種即時代碼生成工具,它能夠根據Simulink模型生成程式源代碼,並打包、編譯所生成的源代碼生成即時應用程式。Stateflow是基於有限狀態機理論針對複雜的事件驅動系統進行建模、仿真的工具。StateflowCoder是基於Stateflow狀態圖生成高效、優化的程式代碼。圍繞著Simulink仿真核心所開發的應用程式包,稱為模組集(Blocksets),MATLAB產品提供許多專用模組集,如CommunicationBlockset、DSPBlockset、SimPowerSystemBlockset、SignalProcessingBlockset等,詳見MATLAB線上幫助文檔。MATLAB是MATLAB產品家族的計算核心與基礎,是集高性能數值計算與數據可視化於一體的高效編程語言。1.1.4Matlab的安裝購買(或下載)Matlab軟體(本校學生登錄進入目錄/soft/教育學習/Matlab/2012b即可下載該軟體)插入光碟,自動運行;或點擊安裝程式setup.exe安裝中選擇“不使用Internet安裝”接受許可協議輸入安裝密鑰(注意:自R2008a開始增加了啟動要求)倒入許可協議設置快捷方式點擊“安裝”進行安裝等待安裝結束1.2.1Matlab的特點Matlab具有用法簡易、可靈活運用、程式結構強又兼具延展性。以下為其幾個特色:高階但簡單的程式環境。做為一種直譯式的程式語言,Matlab容許使用者在短時間內寫完程式,所花的時間約為用FORTRAN或C的幾分之一,而且不需要編譯(compile)及聯結(link)即能執行,同時包含了更多及更容易使用的內建功能。MATLAB基本的語言環境提供了數以千計的計算函數,極大的提高了用戶的編程效率。如,一個fft函數即可完成對指定數據的快速傅裏葉變換,這一任務如果用C語言來編程實現的話,至少要用幾十條C語言才能完成。1.2

Matlab的特點與功能MATLAB是一種腳本式(scripted)的解釋型語言,無論是命令、函數或變數,只要在命令窗口的提示符下鍵入,並“回車(Enter)”,MATLAB都予以解釋執行。先進的資料視覺化功能。Matlab的物件導向圖形架構讓使用者可執行視覺數據分,並製作高品質的圖形,完成科學性或工程性圖文並茂的文章。平臺無關性(可移植性)。MATLAB軟體可以運行在很多不同的電腦系統平臺上,如WindowsMe/NT/2000/XP、很多不同版本的UNIX以及Linux。無論你在哪一個平臺上編寫的程式都可以運行在其他平臺上,對於MATLAB數據檔也一樣,是平臺無關的。極大保護了用戶的勞動、方便了用戶。其繪圖功能也是平臺無關的。無論任何系統平臺,只要MATLAB能夠運行,其圖形功能命令就能正常運行。1.2

Matlab的特點與功能(續)開放及可延伸的架構。Matlab容許使用者接觸它大多數的數學原使碼,檢視運算法,更改現存函數,甚至加入自己的函數使Matlab成為使用者所需要的環境。豐富的程式工具箱。Matlab的程式工具箱融合了套裝前軟體的優點,與一個靈活的開放但容易操作之環境,這些工具箱提供了使用者在特別應用領域所需之許多函數。現有工具箱有:符號運算(利用MapleV的計算核心執行)、影像處理、統計分析、訊號處理、神經網路、模擬分析、控制系統、即時控制、系統確認、強建控制、弧線分析、最佳化、模糊邏輯、mu分析及合成、化學計量分析。1.2

Matlab的特點與功能(續)1.2.2Matlab的功能Matlab符號計算功能

Matlab和著名的符號計算語言Maple相結合Matlab的繪圖功能

Matlab提供豐富的繪圖命令, 很方便實現數據的可視化Matlab的編程功能

Matlab具有程式結構控制、函數 調用、數據結構、輸入輸出、面向對象等程式語言特徵,而且簡單易學、編程效率高。通過Matlab進行編程完成特定的任務1.2

Matlab的特點與功能(續)Matlab豐富的工具箱(toolbox) 根據專門領域中的特殊需要而設計的各種可選工具箱Matlab的Simulink動態仿真集成環境 提供建立系統模型、選擇仿真參數和數值演算法、啟動仿真程式對該系統進行仿真、設置不同的輸出方式來觀察仿真結果等功能SymbolicMathPDEOptimizationSignalprocessImageProcessStatisticsControlSystemSystemIdentification……1.2

Matlab的特點與功能(續)例、用一個簡單命令求解線性系統

3x1+x2-x3=3.6x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4A=[31-1;124;-145];b=[3.6;2.1;-1.4];x=A\bx=1.4818-0.46060.3848例、用簡短命令計算並繪製在0x6範圍內的sin(2x)、sinx2、sin2x。x=linspace(0,6)y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;plot(x,y1,x,y2,x,y3)1.3MatlabR2012b的視窗環境1.3.1啟動與退出MATLAB啟動MATLAB 直接用滑鼠雙擊桌面上MATLAB圖示 或Windows桌面的“開始”—〉“所有程 序”—〉“MATLAB”—〉“R2012b”—〉 “MATLABR2012b”退出MATLAB 關閉MATLAB桌面 或在命令窗口執行quit或exit命令MATLAB缺省桌面(見下頁)1.3MatlabR2012b的視窗環境1.3MatlabR2012b的視窗環境(續)HOMEPLOTSAPPSCommandwindowWorkspaceCommandHistoryCurrentFlolderDetails該桌面的上層鋪放著三個最常用的介面: 指令窗(CommandWindow)、當前目錄(CurrentDirectory)流覽器、Matlab工作記憶體空間(Workspace)流覽器、歷史指令(CommandHistory)窗。1.3MatlabR2012b的視窗環境(續)1.3.2指令窗(CommandWindow)進入Matlab之後,會看道到一個視窗CommandWindow稱為指令視窗,它是你鍵入指令的地方也是Matlab將計算結果顯示在此。在該窗內,可鍵入各種送給Matlab運作的指令、函數、運算式;顯示除圖形外的所有運算結果;運行錯誤時,給出相關的出錯提示。1.3.2Matlab指令窗(續)Matlab語句形式

>>變數=運算式;

當鍵入回車鍵時,該語句被執行。語句執行之後,窗口自動顯示出語句執行的結果。如果希望結果不被顯示,則需在語句之後加上分號。此時儘管結果沒有顯示,但它依然被賦值並在Matlab工作空間中分配了記憶體。方向鍵可以編輯修改已輸入的命令 ↑:調出上一行語句; ↓:調出下一行語句;多行命令(…)如果命令語句超過一行或者太長希望分行輸入,則可以使用多行命令繼續輸入。例如:S=1-12+13+4+9-4-18;等價於:

S=1-12+13+4+…9-4-18;命令窗口的分頁輸出

moreoff:不允許分頁

moreon:允許分頁

more(n):指定每頁輸出的行數回車鍵顯示下一行,空格鍵顯示下一頁,q結束當前顯示。1.3.2Matlab指令窗(續)在該流覽器中,展示著子目錄、M檔、MAT檔和MDL檔等。對該介面上的M檔,可直接進行複製、編輯和運行;介面上的MAT數據檔,可直接送入Matlab工作記憶體。此外,對該介面上的子目錄,可進行Windows平臺的各種標準操作。此外,在當前目錄流覽器正下方,還有一個“檔概況窗(Details)”。該窗顯示所選檔的概況資訊。比如該窗會展示:M函數檔的H1行內容,最基本的函數格式;所包含的內嵌函數和其他子函數。1.3.3當前目錄(CurrentDirectory)流覽器1.3.3

當前目錄流覽器(續)該流覽器默認地位於當前目錄流覽器的後臺。該窗口羅列出Matlab工作空間中所有的變數名、大小、位元組數;在該窗中,可對變數進行觀察、圖示、編輯、提取和保存。1.3.4工作記憶體空間(Workspace)流覽器Matlab的workspace中的變數管理who:顯示當前工作空間中所有變數的一個簡單列表;whos:顯示出變數的大小、數據格式等詳細資訊;clear:清除工作空間中所有的變數;clear變數名:清除指定的變數;1.3.4Matlab工作記憶體空間流覽器(續)Matlab的workspace中的變數保存和載入save:將工作空間的所有變數存到Matlab.mat的二進位檔中。savefilename:將所有變數保存到磁片檔filename中。savefilenamevariables:將variables所表示的變數列表保存到磁片檔filename中。各個不同的變數之間只能用空格來分隔。load(filename)(variables):將數據檔載入Matlab工作空間。1.3.4Matlab工作記憶體空間流覽器(續)該窗記錄已經運作過的指令、函數、運算式,及它們運行的日期、時間。該窗中的所有指令、文字都允許複製、重運行及用於產生M檔。1.3.5歷史指令(CommandHistory)窗【例1.3-1】計算半徑為5.2m的圓的周長和麵積。>>radius=5.2;%圓的半徑>>area=pi*5.2^2,circle_len=2*pi*5.2area=

84.9487circle_len=

32.6726以上兩例,命令行中用到了等號“=”。計算結果不再賦給“ans”,而是賦給用戶指定的變數y、area、circle_len。無論是預定義變數還是用戶自定義變數都被存儲在系統的工作空間內,即系統定義的一個存儲窗口變數的記憶體空間。Who、whos命令用來顯示工作空間的變數clear命令用來清除工作空間的變數。>>who>>whosYourvariablesare:anscircle_lenyarearadius

Name SizeBytesClassans 1x18doublearrayarea 1x18doublearraycircle_len 1x18doublearrayradius 1x18doublearrayy 1x18doublearrayGrandtotalis5elementsusing40bytes>>cleary>>whoYourvariablesare:anscircle_lenarearadius

>>clearansarea>>whosYourvariablesare:NameSizeBytesClasscircle_len1x18doublearrayradius1x18doublearrayGrandtotalis2elementsusing16bytesMatlab兩種工作方式:指令行操作方式——鍵入命令行。執行M檔方式——鍵入程式名。1.4Matlab基本命令help 啟動聯機幫助檔顯示

what 列出当前目录下的有关文件

type 列出M檔

lookfor 对help資訊中的關鍵字查找

which 找出函数与文件所在的目录名

demo 运行Matlab的演示程式

path 设置或查询Matlab的路徑who 列出當前工作空間中的變數

whos 列出当前工作空间中的变量及信息或用 工具栏上的Workspace流覽器1.4.1常用的窗口命令cedit 設置命令行編輯與回調的參數

clc 清除命令窗口中的显示

home 将光标移动到左上角位置

format 设置输出格式

echo 显示文件中的Matlab命令

more 控制命令窗口的输出页面1.4.2對命令窗口控制的常用命令1.4.3Matlab的輸出格式Matlab以雙精度執行所有的運算,運算結果可以在螢幕上輸出,同時賦給指定變數;若無指定變數,則系統會自動將結果賦給變數“ans”Matlab中數的輸出格式可以通過format命令指定 注意:

輸出格式由format命令控制,只是影響螢幕顯示效果,不影響內部存儲和計算。格式解釋以pi為例format短格式(缺省顯示格式),同short3.1416formatshort短格式(缺省顯示格式),只顯示5位3.1416formatlong長格式,雙精度數15位,單精確度數7位3.14159265358979formatshorte短格式e方式(科學計數格式)3.1416e+000formatlonge長格式e方式3.141592653589793e+000formatshortg短格式g方式3.1416formatlongg長格式g方式3.14159265358979formatcompact壓縮格式formatloose自由格式format+/formatbank/formatrat/formathex(詳情查看聯機幫助)1.4.3Matlab的輸出格式(續)(1)↑或者Ctrl+p

調用上一次的命令(2)↓或者Ctrl+n

調用下一行的命令

(3)←或者Ctrl+b

退後一格

(4)→或者Ctrl+f

前移一格(5)Ctrl+←或者Ctrl+r

向右移一個單詞

(6)Ctrl+→或者Ctrl+l

向左移一個單詞(7)Home或者Ctrl+a

游標移到行首1.4.4其他常用功能(8)End或者Ctrl+e

游標移到行尾

(9)Esc或者Ctrl+u

清除一行

(10)Del或者Ctrl+d

清除游標後字元

(11)Backspace或者Ctrl+h

清除游標前字元

(12)Ctrl+k

清除游標至行尾字

(13)Ctrl+c

中断程序运行(14)Tab鍵命令補全功能最後我們說一下Matlab的幫助系統,一開始學接觸Matlab的人不喜歡用幫助系統,因為裏面的說明都是英文,我覺得大家應該養成有問題去求助help系統的習慣,問題最好還是能自己解決,這樣印象會比較深刻,不要碰到不懂的函數和問題就到論壇裏問,幫助檔的英文描述語法還是比較簡單的,個別詞用詞霸查一下,用於幫助系統的功能十分強大,我覺得一半以上的問題是可以自己解決的。1.5Matlab幫助系統MATLAB提供的幫助資訊有兩類簡單純文本幫助資訊helplookfor(條件比較寬鬆)例:inverse窗口式綜合幫助資訊(文字、公式、圖形)dochelpwin1.5Matlab幫助系統(續)1.5.1

Matlab的幫助命令helpwin指令在命令窗口中鍵入helpwin,進入幫助窗口;helpdesk指令在命令窗口中鍵入helpdesk(或doc,或點擊工具條中的?按鈕),進入幫助窗口,顯示HTML格式的幫助內容。help命令

help:列出所有的幫助主題,每個幫助主題對應於Matlab搜索路徑中的一個目錄;

help庫名:得到庫中全部函數名;

help函數名或命令;得到函數或命令的幫助資訊;lookfor命令 如在命令窗口中鍵入:lookforsu,則只要有與‘su’匹配的單詞就顯示出來。其收索條件比help命令寬。demo命令

demo:可得到Matlab及其所以工具箱中的全部演示程式。是學習Matlab的一種很好的途徑。提示:在MatlabR2012b開啟的狀態下按下F1也可以調出幫助系統。1.5.1

Matlab的幫助命令(續)1.5.2

Matlab的幫助窗口雖然help可以隨時提供幫助,但必須知道準確的函數名稱。當不能確定函數名稱時,help就無能為力了。1.5.2

Matlab的幫助窗口(續)>>helpwin1.5.2

Matlab的幫助窗口(續)>>demo1.5.2

Matlab的幫助窗口(續)滑鼠單擊按鈕本章小結本章主要內容:介紹了MATLAB的發展、基本組成、主要功能及其特點,MATLAB命令窗口及檔管理,MATLAB幫助系統等工作環境的基本操作。重點和難點:命令行的輸入,用戶目錄及搜索路徑的設置。練習題1.標點符號—可以使命令不顯示結果,———用來表示注釋改行。2.用“format”命令設置數據輸出格式,————將Pi顯示為3.14159265358979,——將Pi顯示為3.1416e+000.3.輸入變數a=5.3,b=[1,2;3,4],在工作空間中使用who,whos,clear命令,並用save命令將變數存入“c:\exe0101.mat”檔。4.學習設置MATLAB搜索路徑的方法,將“c:\exe”目錄添加到搜索路徑中。5.計算6.計算的值,其中x=4.92.7.計算的值。8.分別得到從0到4π步長為0.4π的變數x1和從0到4π分成10點的變數x2打開後彈出一個對話框:MATLAB為GUI設計一共準備了4種範本,分別是BlankGUI(默認)

、GUIwithUicontrols(帶控件對象的GUI範本)、GUIwithAxesandMenu(帶坐標軸與菜單的GUI範本)與ModalQuestionDialog(帶模式問話對話框的GUI範本)。

当用户选择不同的模板时,在GUI設計範本介面的右邊就會顯示出與該範本對應的GUI圖形。

我們直接點擊OK進入默認的窗口範本。菜單欄有File、Edit、View、Layout、Tools和Help6個菜單項菜單欄下麵是工具欄,裏面選項功能如下:位置調整菜單編輯Tab順序M編輯屬性設置工具欄編輯對象流覽運行面板控件:命令按鈕(PushButton)控件單選按鈕(RadioButton)控件編輯框(EditText)控件面板(Panel)控件ActiveX控件彈出式菜單(PopupMenu)控件開關按鈕(ToggleButton)控件滾動條(Slider)控件複選(CheckBox)控件靜態文本(StaticText)列表框(Listbox)控件坐標軸(Axes)控件框架(ButtonGroup)控件選擇指針表格框控件2.基本操作為了添加控件,可以從GUI設計窗口的控件面板中選擇一個對象,然後以拖曳方式在客戶區建立該對象。在GUI設計窗口創建對象後,通過雙擊該對象,就會顯示該對象的屬性查看器,通過它可以設置該對象的屬性值。在選中對象的前提下,單擊滑鼠右鍵,會彈出一個快捷菜單,可以從中選擇某個子菜單進行相應的操作。在對象設計區右擊滑鼠,會顯示與圖形窗口有關的快捷菜單。3.對象流覽器(ObjectBrowser)對象流覽器裏面列出了所有對象的樹狀結構,這些結構就是當前正在設計的GUI程式中用到的所有對象。利用它可觀察當前設計階段的各個句柄圖形對象,也可以單擊該對象以打開相應的屬性編輯器。

如果我們在客戶區添加幾個控件打開對象流覽器就可看到:4.

Tab順序編輯器(TabOrderEditor)

通過該工具,設置當按下鍵盤上的Tab鍵時,對象被選中的先後順序。選中控件通過工具欄的上、下按鈕來調節tab順序。5.菜單編輯器(MenuEditor)菜單編輯器提供了兩種菜單類型的編輯功能:下拉式菜單(MenuBar)和彈出式菜單(ContextMenu)新的菜單項新的子菜單項彈出式菜單下拉式菜單彈出式菜單標識菜單名複選標記分隔條回調函數快捷鍵使能標記例十七:編寫一個3D圖的演示程式。它有一個下拉菜單“3D”包含子菜單“threedimensioncurves”、“The3Dmesh”、“Three-dimensionalsurface”,用於顯示相應圖形。1.首先我們在matlab窗口介面輸入guide,然後選擇默認的範本,點擊ok;2.進入開發窗口後我們選擇一個pushbutton控件放到介面區的右下角位置,做為退出按鈕;3.右鍵點擊pushbutton控件,選擇PropertyInspector,或者雙擊控件,彈出屬性窗口;4.在屬性窗口中找到string項,將後面pushbutton改為quit,將標籤Tag改為quit,關閉屬性框,這樣完成對控件的重命名;5.點擊MenuEditor,新建一個菜單項,命名為3D,然後在該菜單項下新建3個子菜單項,分別命名為“threedimensioncurves”、“The3Dmesh”、“Three-dimensionalsurface”,他們分被對應的tag為:‘Untitled_1’‘Untitled_2’‘Untitled_3’‘Untitled_4’然後點擊ok;6.以上介面設置完成,我們要為程式加上代碼才能顯示圖形,首先我們保存檔,保存後自動彈出Editor對話框,或者我們點擊工具欄上的Editor選項,也可以打開Editor對話框。

在functionquit_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton1(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)後面加上ss=questdlg('你真的要退出嗎?','系統提示!','不,我還想看看!','是的,我要退出!','是的,我要退出!');switchsscase'是的,我要退出!'delete(handles.figure1);End這樣可以使quit按鈕達到退出的功能分別在“functionUntitled_2_Callback(hObject,eventdata,handles)”“functionUntitled_3_Callback(hObject,eventdata,handles)”和”functionUntitled_4_Callback(hObject,eventdata,handles)”後面添加代碼“[x,y,z]=peaks;plot3(x,y,z);”

“mesh(peaks);”和“surf(peaks);”7.完成後點擊對話框上的RUN按鈕,就會彈出已經做好的圖形介面點擊3D可以選擇不同的圖形顯示點擊quit,會彈出對話框,讓你選擇是否退出,選擇是則關閉窗口3.1二維圖形的繪製3.1.1常用的二維圖形繪製函數(1)plot函數:plot(X,Y):繪製向量Y對向量X的圖形,如果Y或者x為一矩陣,則繪出矩陣的行向量或列向量,元素個數必須對應。plot(Y):繪製Y的列向量對其座標索引的圖形,若Y為向量(矩陣),則是Y的實部對虛部作圖。plot(X,Y,s):s為代表不同線型、點標、文字的字串。plot(X1,Y1,s1,X2,Y2,s2,X3,Y3,s3,……):繪製組合圖Plot函數若沒有顏色指定,則使用默認值。例一:繪製單一圖形

>>x=-pi:.1:pi;y=sin(x);plot(x,y)例二:繪製組合圖形>>t=0:pi/100:pi*2;y1=sin(t);y2=sin(2*t);>>plot(t,y1,'r',t,y2,'r')(2)ezplot函數:它是一個易用的一元函數繪圖函數。特別是在繪製含有符號變數的函數的圖像時,ezplot要比plot更方便。因為plot繪製圖形時要指定引數的範圍,而ezplot無需數據準備,直接繪出圖形。例三:>>ezplot('x^2')(3)fplot函數:fplot(’fun’,lims)表示繪製字串‘fun’指定的函數在lims=[min,max]範圍內的圖形。例四:在[-2,2]上畫出tanx的圖形。方法一:>>fun=@tanh;fplot(fun,[-22])方法二:先建立一個M文

件fun.mfuntiony=fun(x);y=tan(x);

再輸入命令:fplot(‘fun’,[-2,2])方法三:>>fplot(‘tan(x)’,[-2,2])3.1.2圖形的線型和顏色控制線型符號-:-.--含義實線虛線點劃線雙劃線顏色符號bgrcmykw含義藍綠紅青品紅黃黑白點型符號.+*o><^v含義點加號星號圈三角符格式:plot(x,y,’cs’,…)

其中c表示線型,s表示顏色。例五:>>x=-pi:.1:pi;y=sin(x);plot(x,y,‘ro')‘ro’表示

生成的圖形

顏色為紅色,且為圈型例六:>>t=0:pi/100:pi*2;y1=sin(t);y2=sin(2*t);plot(t,y1,‘or’,t,y2,‘:r’)

分別畫出用虛線表示和用圓圈表示的圖形3.1.3圖形的標注

在繪製圖形的同時,可以對圖形加上一些說明,如圖形名稱、圖形某一部分的含義、座標說明等,將這些操作稱為添加圖形標記。title(‘加圖形標題');xlabel('加X軸標記');ylabel('加Y軸標記');text(X,Y,‘添加文本’);——在x,y處添加文本gridon加網格線\bullet代表.\pi代表π\lefttarrow左箭頭\righttarrow右箭頭例七:plot(0:pi/20:2*pi,sin(0:pi/20:2*pi))text(pi,0,'\leftarrowsin(\pi)');title('sin(x)');xlabel('x軸');ylabel('y軸');3.1.4坐標軸的控制方法

如果用戶對坐標系統不滿意,還可以利用axis函數對坐標軸重新定義。axis([xminxmaxyminymax])設定最大最小值axis(‘auto’)恢復為默認的座標值axis(‘square’)將當前圖形設置為正方形axis(‘equal’)將圖形的x,y坐標軸單位刻度設為相同的axis(‘off’)關閉坐標系統axis(‘on’)打開坐標系統

例八:沒有對坐標系統進行設置x=0:.01:pi/2;plot(x,tan(x),'-ro')對坐標軸系統進行設置後x=0:.01:pi/2;plot(x,tan(x),'-ro')axis([0pi/205])3.1.5其他特殊二維圖形(1)階梯圖形

階梯圖形因名思義,圖形成階梯狀,可以用函數stairs(x,y)來實現。如下程式段:x=linspace(-2*pi,2*pi,40);stairs(x,sin(x))注:linspace(x1,x2,n)表示用於產生x1,x2之間的n點行向量階梯圖形:(2)條形圖形

用bar(x,y)可以繪製條形圖形。如下列程式段將繪製條形圖形。x=[-2.5:0.25:2.5];y=sin(x);bar(x,y);(3)填充圖形Fill(x,y,’c’)用來繪製和填充二維多變圖形,x,y為二維多邊形頂點座標向量。字元‘c’為顏色取值。如下程式段可繪製填充圖形。x=[0.10.10.60.60.1];y=[0.10.60.60.10.1];fill(x,y,'y');axis([0,1,0,1]);scatter(x,y)%畫點圖stem(x,y) %畫火柴杆圖3.2三維圖形的繪製3.2.1三維曲線的繪製

(1)polt3函數最基本的三維圖形函數為plot3,它是將二維函數plot的有關功能擴展到三維空間,用來繪製三維圖形。

plot3(x,y,z,s)x,y,z表示三維曲線的座標;s表示繪製三維曲線的顏色線型例九:繪製螺旋形的三維曲線

>>t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)xlabel('sin(t)')ylabel('cos(t)')zlabel('t')gridon(2)ezplot3函數:專門用來繪製符號函數的命令,如同ezplot例十:用ezplot3函數繪製三維螺旋圖ezplot3('sin(t)','cos(t)','t',[0,6*pi])3.2.2三維曲面的繪製(1)meshgrid函數和peaks函數

meshgrid函數

按指定方式創建網格矩陣。函數:[X,Y]=meshgrid(a,b)

peaks函數用於創建雙峰函數和用雙峰函數繪圖。

(2)mesh函數

mesh函數用於繪製三維網格圖。在不需要繪製特別精細的三維曲面結構圖時,可以通過繪製三維網格圖來表示三維曲面。三維曲面的網格圖最突出的優點是:它較好地解決了實驗數據在三維空間的可視化問題。mesh(x,y,z)其中x,y控制X和Y軸座標,矩陣z是由(x,y)求得Z軸座標,(x,y,z)組成了三維空間的網格點;例十一:figure;[X,Y]=meshgrid(-8:.5:8);R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;mesh(X,Y,Z);(3)Surf函數在網格圖的基礎上,在小網格之間用顏色填充。它的線條是黑色的,線條之間有顏色;網格圖的線條有顏色,線條間無顏色。在曲面圖裏,要考慮用不同的方法對表面加色彩。surf函數和mesh函數的調用格式一致

例十二:繪製一個三維曲面圖形>>x=[0:0.15:2*pi];y=[0:0.15:2*pi];z=sin(y')*cos(x);surf(x,y,z)例十三:繪製一個山峰表面圖[X,Y,Z]=peaks(40);surf(X,Y,Z)gridon3.2.3特殊圖形繪製(1)餅圖pie(x)pie(x,explode)pie3(X)pie3(x,explode)

二維餅圖程式如下:x=[130.52.52];explode=[01000];pie(x,explode)三維餅圖程式如下:

x=[130.52.52];explode=[01000];pie3(x,explode)(2)誤差棒圖:errorbar繪製下數據的誤差棒圖觀察值220227245260246270256實際值225230250265250275260程式如下:x=[220227245260246270256];y=[225230250265250275260];e=abs(x-y);errorbar(y,e)axis([0,8,210,300]);誤差棒圖:3.3子圖的繪製Sublot函數:

subplot(m,n,p)

該命令將圖形窗口分成m×n塊繪圖區,即每行n個,一共m行。p表示圖所在的位置,p=1表示從左到右從上到下的第一個位置。

例十六:income=[3.2,4.1,5.0,5.6];outgo=[2.5,4.0,3.35,4.9];subplot(2,1,1);plot(income)title('Income')subplot(2,1,2);plot(outgo)title(‘Outgo’)圖形的輸出圖形的複製PrintScreen鍵和Ctrl+C鍵的組合使用。圖形窗口的菜單命令:edit-》copyfigure。複製的圖形可以直接在word等文本檔中粘貼。圖形的列印matlab窗口菜單命令:file-》print…。圖形窗口菜單命令:file-》print…。列印命令:print<filename>-f<figurehand>本章小結本章主要內容:通過本章的學習瞭解MATLAB繪圖的主要功能,熟悉MATLAB繪圖函數和輸出方法,掌握函數基本運用方法,圖形窗口創建的步驟。重點和難點:圖形窗口創建方法、三維圖形的繪製

1.繪製圖形在[0,4π]間的圖形。

2.在同一圖形窗口繪製sinx,cosx曲線,要求用不同的顏色和線型、數據點標記字元,X軸範圍為[0,2π],Y軸範圍為[-2,2],並加注釋說明‘sinx','cosx'以區分。

3.t=-3:0.125:3,x=sin2t,y=cos2t,z=x2+2y2,請繪製基於x,y,z的三維網格曲面圖。座標範圍為[-11-1102]。練習題

4.已知6<x<30,15<y<36,求不定方程2x+5y=126的整數解。(利用meshgrid函數和find函數)5.設計一個圖形用戶介面,完成自定的功能。6.1Matlab與word的組合使用6.1.1Notebook操作基礎(1)Notebook的安裝首先安裝word,然後在matlab命令窗口輸入:notebook–setupMATLAB會自動尋找winword.exe的安裝路徑,並在該路徑下尋找範本檔。如果找到了,則出現提示:

Notebooksetupiscomplete則表示安裝結束。(2)Notebook的啟動Notebook啟動有兩種方法從MATLAB中啟動Notebook

在matlab命令窗口輸入並執行Notebook從Word中啟動Notebook

在Word中新建M-book範本檔。M-book範本為用戶提供了在Word環境下使用MATLAB的功能。該範本定義了Word與MATLAB進行通訊的宏指令、文檔樣式和工具欄。上一頁下一頁結束在範本下要建立新的

M-book文檔,可以選擇該命令。調用

M-book範本時,Word介面有兩點變化:

在菜單欄中多了一個

Notebook菜單項,Notebook的許多操作都可以通過該菜單項的命令來完成。

在“檔”菜單項下多了一個NewM-book命令項。如果(3)notebook介面6.1.2輸入輸出單元(1)輸入單元定義輸入單元的方法是:首先選中所需命令,然後在Notebook菜單項中選擇DefineInputCell命令,於是被選中的MATLAB命令成為輸入單元。定義輸入單元也可以在選中所需命令後,直接按組合鍵Alt+D。為了執行輸入單元,應選擇Notebook菜單項中的EvaluateCell命令或直接按組合鍵Ctrl+Enter。(2)輸出單元輸入單元執行後產生輸出單元。如果輸入單元經修改後重新執行,那麼新的輸出單元將替換原有的輸出單元。圖形的輸出格式則通過Notebook菜單中的NotebookOptions來設置。(3)在M-book文檔中定義輸入單元操作步驟如下:

在文檔中輸入MATLAB命令。

選中命令行,在Notebook菜單項中選DefineInputCell命令或直接按組合鍵Alt+D,於是命令行就變成了“綠色”的輸入單元。

若要把輸入單元送去執行,則可用Notebook菜單項中的EvaluateCell命令或直接按組合鍵Ctrl+Enter,執行後產生“藍色”的輸出單元。輸入單元的定義與執行也可以同時進行。先選中MATLAB命令,然後從Notebook菜單項中選擇EvaluateCell命令或直接按組合鍵Ctrl+Enter,不但使被選中的命令成為輸入單元,而且送去執行,產生輸出單元。例1:Notebook的簡單應用,步驟如下:(1)新建一個M-book(2)輸入m=eye(3),並定義為輸入單元,再運行它,可以在M-book看到如下內容。

m=eye(3)

m=100010001(3)繼續輸入“除零測試”且按回車鍵,再輸入m/0,並定義m/0為輸入單元並運行,可以在M-book看到如下內容

m=eye(3)

m=100010001除零測試m/0

ans=InfNaNNaNNaNInfNaNNaNNaNInf(4)選中單元,再選中【undefinecells】選項,則將該輸出轉化為普通文本

,則可以看到文本顏色都變統一黑色,沒有輸入輸出單元的標記。例2:利用notebook繪圖,具體步驟如下:(1)新建一個m-book,輸入繪圖實驗並按回車;(2)再輸入如下代碼序列:t=0:0.1:20;y=1-cos(t).*exp(-t/5);Time=[0,20,20,0]Amplitude=[0.95,0.95,1.05,1.05];fill(Time,Amplitude,'g'),axis([0,20,0,2]);xlabel('Time'),ylabel('Amplitude');holdonplot(t,y,'r','LineWidth',2)holdoffymax=min(y)定義以上代碼為輸入代碼,並運行,可以在matlab上看到如下內容:Time=020200ymax=0

Notebook使用中應注意的問題:M-book文檔中的MATLAB代碼必須在英文狀態下輸入。帶滑鼠操作交互的代碼最好不在M-book

文檔中運行。

在運行M-book文檔時,最好不運行其他程式與任務,以免影響M-book文檔中程序的正確執行。採用以下方法解決代碼執行中出現的異常情況:代碼以命令clear開始;重新啟動電腦後,再執行M-book文檔中的程序;將M-book文檔的代碼拷貝到M文件,再到MATLAB的命令窗口執行。M-book文檔的代碼運行速度要比在

MATLAB命令窗口中執行慢很多。當編輯科技論文或其他文檔時,最後可將單元轉換為普通文本。

可使用Notebook菜單中的【BringMATLABtoFont】選項或者按組合鍵Alt

+M把MATLAB的命令窗口調到前臺。可使用Notebook菜單中的【ToogleGraphOutputforCell】選項控制是否顯示輸入單元或輸出單元的輸出圖形。6.2Matlab與excel的組合使用6.2.1調用xlsfinfo函數獲取檔資訊在讀取Excel目標數據檔前,可以通過xlsfinfo函數獲取該檔的相關資訊,為後續操作獲得有效資訊(例如,檔類型、檔內部結構、相關的軟體版本等)。xlsfinfo函數的調用格式如下:[typ,desc,fmt]=xlsfinfo(filename)其中輸入參數filename為字串變數,用來指定目標檔的檔案名和文件路徑。輸出參數的含義如下:typ:目標檔類型desc:目標檔內部表名稱(sheetname)fmt:支持目標檔的軟體版本例一:調用xlsfinfo函數讀取Excel檔。[typ,desc,fmt]=xlsfinfo(‘e:/1.xlsx’)%excel檔並不在工作目錄下,放在了e盤根目錄所以要寫出路徑e:/1.xlsx。運行結果如下:typ=MicrosoftExcelSpreadsheetdesc='Sheet1''Sheet2''Sheet3'fmt=xlOpenXMLWorkbook6.2.2調用xlsread函數讀取數據xlsread函數用來讀取Excel工作表中的數據。原理是這樣的,當用戶系統安裝有Excel時,MATLAB創建Excel伺服器,通過伺服器介面讀取數據。當用戶系統沒有安裝Excel或MATLAB不能訪問COM伺服器時,MATLAB利用基本模式(Basicmode)讀取數據,即把Excel檔作為二進位映像檔讀取進來,然後讀取其中的數據。xlsread函數的調用格式如下:1.num=xlsread(filename)讀取由filename指定的Excel檔中第1個工作表中的數據,返回一個雙精度矩陣num.輸入參數filename是由單引號括起來的字串,用來指定目標檔的檔案名和文件路徑2.num=xlsread(filename,-1)在Excel介面中打開數據檔,允許用戶互動式選取要讀取的工作表以及工作表中需要導入的數據區域。這種調用會彈出一個提示介面,提示用戶選擇Excel工作表中的數據區域。在某個工作表上單擊並拖動滑鼠即可選擇數據區域,然後單擊提示介面上的“確定”按鈕即可導入所選區域的數據。3.num=xlsread(filename,sheet)用參數sheet指定讀取的工作表。sheet可以是單引號括起來的字串,也可以是正整數,當是字串時,用來指定工作表的名字,當是正整數時,用來指定工作表的序號。4.num=xlsread(filename,range)用參數range指定讀取的單元格區域。range是字串,為了區分sheet和range參數,range參數必需是包含冒號,形如'C1:C2'的表示區域的字串。若range參數中沒有冒號,xlsread就會把它作為工作表的名字或序號,這就可能導致錯誤。5.num=xlsread(filename,sheet,range)同時指定工作表和工作表區域。例1:調用xlsread函數讀取檔1.xls第1個工作表中區域A2:C3的數據。方法1:

>>num=xlsread('e:/1.xlsx','A2:C3')方法2:>>num=xlsread(‘e:/1.xls',1,'A2:C3')方法3:>>num=xlsread(‘e:/1.xls','Sheet1','A2:C3')結果:num=160101601010126010260102017.num=xlsread(filename,…,functionhandle)在讀取電子錶格裏的數據之前,先調用由函數句柄functionhandle指定的函數。它允許用戶在讀取數據之前對數據進行一些操作,例如在讀取之前變換數據類型。用戶可以編寫自己的函數,把函數句柄傳遞給xlsread函數。當調用xlsread函數時,它從電子錶格讀取數據,把用戶函數作用在這些數據上,然後返回最終結果。xlsread函數在調用用戶函數時,它通過Excel伺服器Range對象的介面訪問電子錶格的數據,所以用戶函數必須包括作為輸入輸出的介面。例:將檔1.xls第1個工作表中A2至C3單元格中的數據加1,並讀取變換後的數據。首先編寫用戶函數如下:functionDataRange=add(DataRange)fork=1:DataRange.CountDataRange.Value{k}=DataRange.Value{k}+1;%將單元格取值加1End然後再命令窗口輸入>>convertdata=xlsread(‘e:/1.xlsx','','A2:C3','',@add)得到結果:convertdata=260102601010236010360102028.[num,txt]=xlsread(filename,…)返回數字矩陣num和文本數據txt.txt是一個元胞數組,如同例7.1-1中的textdata,txt中與數字對應位置的元胞為空字元串('')。9.[num,txt,raw]=xlsread(filename,…)num和txt的解釋同上,返回的raw為未經處理的元胞數組,既包含數字,又包含文本數據。6.2.3

調用xlswrite函數寫入數據輸出status反映了寫操作完成的情況,若成功完成,則status等於1(真),否則,status等於0(假)。只有在指定輸出參數的情況下,xlswrite函數才返回status的值。輸出message中包含了寫操作過程中的警告和錯誤資訊,它是一個結構體變數,有兩個字段:message和identifier.其中message是包含警告和錯誤資訊的字串,identifier也是字串,包含了警告和錯誤資訊的識別字。【例7.2-4】生成一個10×10的亂數矩陣,將它寫入Excel檔excel.xls的第2個工作表的默認區域。X=rand(10,10);%將亂數據X寫入Excel檔excel.xls的第2個工作表的默認區域[status,message]=xlswrite(‘E:/excel.xlsx',X,'sheet2')Simulink中的“Simu”一詞表示可用於電腦仿真,而“Link”一詞表示它能進行系統連接,即把一系列模組連接起來,構成複雜的系統模型。作為Matlab的一個重要組成部分,Simulink由於它所具有的上述的兩大功能和特色,以及所提供的可視化仿真環境、快捷簡便的操作方法,而使其成為目前最受歡迎的仿真軟體。7.1Simulink基本操作利用Simulink進行系統仿真的步驟是:啟動Simulink,打開Simulink模組庫打開空白模型窗口;建立Smulink仿真模型;設置仿真參數,進行仿真;輸出仿真結果。啟動Simulink。單擊HOME選項卡上的Simulink

Library圖示,或者在Matlab命令窗口輸入simulink,即彈出圖示的模組庫窗口介面(SimulinkLibraryBrowser)。該介面右邊的窗口給出Simulink所有的子模組庫。常用的子模組庫有Sources(信號源),Sink(顯示輸出),Continuous(線性連續系統),Discrete(線性離散系統),Function&Table(函數與表格),Math(數學運算),Discontinuities(非線性),Demo(演示)等。7.1.1啟動Simulink啟動Simulink每個子模組庫中包含同類型的標準模型,這些模組可直接用於建立系統的Simulink框圖模型。可按以下方法打開子模組庫:用滑鼠左鍵點擊某子模組庫(如Continuous),Simulink流覽器右邊的窗口即顯示該子模組庫包含的全部標準模組。7.1.1啟動Simulink啟動Simulink用滑鼠右鍵點擊Simulink菜單項,則彈出一菜單條,點擊該菜單條即彈出該子庫的標準模組窗口。如先右鍵單擊下圖中的Sinks,出現OpenSinks

Library菜單條,再單擊該菜單條,則彈出右圖所示的該子庫的標準模組窗口;如直接左鍵雙擊也可以實現同樣操作。7.1.1啟動Simulink打開空白模型窗口模型窗口用來建立系統的仿真模型。只有先創建一個空白的模型窗口,才能將模組庫的相應模組複製到該窗口,通過必要的連接,建立起Simulink仿真模型。也將這種窗口稱為Simulink仿真模型窗口。以下方法可用於打開一個空白模型窗口:在HOME選項卡中單擊圖示New

Simulink

Model;單擊模組庫流覽器的新建圖示;選中模組庫流覽器的File:New

Model菜單項。所打開的空白模型窗口如圖所示。7.1.1啟動Simulink打開Simulink模型窗口(Untitled)選取模組或模組組在Simulink模型或模組庫窗口內,用滑鼠左鍵單擊所需模組圖示,圖示背景顏色變深,表明該模組已經選中。模組拷貝及刪除在模組庫中選中模組後,按住滑鼠左鍵不放並移動滑鼠至目標模型窗口指定位置,釋放滑鼠即完成模組拷貝。模組的刪除只需選定刪除的模組,按Del鍵即可。7.1.2建立Simulink仿真模型模組調整改變模組位置、大小;改變模組方向使模組輸入輸出端口的方向改變。選中模組後,選取菜單Rotate&Flip→Clockwise,可使模組旋轉900。7.1.2建立Simulink仿真模型按快捷鍵Ctrl+R結果相同。模組參數設置用滑鼠雙擊指定模組圖示,打開模組對話框,根據對話框欄目中提供的資訊進行參數設置或修改。例如雙擊模型窗口的傳遞函數模組,彈出圖示對話框,在對話框中分別輸入分子、分母多項式的係數,點擊OK鍵,完成該模型的設置,如右下圖所示:7.1.2建立Simulink仿真模型選中TransferFcn拖拉四角模組的連接模組之間的連接是用連接線將一個模組的輸出端與另一模組的輸入端連接起來;也可用分支線把一個模組的輸出端與幾個模組的輸入端連接起來。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论