《MATLAB基礎及應用》全套教學課件_第1頁
《MATLAB基礎及應用》全套教學課件_第2頁
《MATLAB基礎及應用》全套教學課件_第3頁
《MATLAB基礎及應用》全套教學課件_第4頁
《MATLAB基礎及應用》全套教學課件_第5頁
已閱讀5頁,還剩573頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

MATLAB基礎及應用

第1章

概述

第2章

矩陣生成與運算

第3章

流程控制語句

第4章

繪圖

第5章

數(shù)值計算

第6章

進化算法

第7章

數(shù)字圖像處理

全套可編輯PPT課件

本課件是可編輯的正常PPT課件第1章 概述本章學習重點掌握內(nèi)容:MATLAB發(fā)展的歷程及特點MATLAB界面和工具箱MATLAB通用命令簡單的MATLAB程序結(jié)構(gòu)本課件是可編輯的正常PPT課件第1章 概述1.1MATLAB發(fā)展歷史1.2MATLAB特點1.3MATLAB界面1.4MATLAB工具箱1.5MATLAB通用命令1.6簡單MATLAB程序示例本課件是可編輯的正常PPT課件1.1 MATLAB發(fā)展歷史MATLAB是MatrixLaboratory的簡稱,是由美國MathWorks公司開發(fā)的用于數(shù)值計算和圖形處理的科學計算系統(tǒng).1983年,Little提議開發(fā)基于MATLAB的商用產(chǎn)品.1984年發(fā)布了運行在PC上的商業(yè)化版本MATLAB3.0.1993年,在MATLAB4.1中加入了以Maple內(nèi)核為“引擎”的符號計算工具箱,使MATLAB集數(shù)值計算和符號計算兩大功能于一身.2000年發(fā)布了桌面版MATLAB6.0,在核心數(shù)值算法、用戶界面、外部接口、桌面應用等諸多方面都有了極大改進.2006年以后,MathWorks公司每年進行兩次產(chǎn)品發(fā)布.本課件是可編輯的正常PPT課件1.2 MATLAB特點MATLAB具有強大數(shù)值計算能力;MATLAB的基本運算對象為數(shù)組,可以進行批量數(shù)據(jù)處理;MATLAB語法簡潔,程序簡短;MATLAB提供了大量的工具箱,

可以快速、高效地解決一些專業(yè)領域問題;MATLAB具有分支、循環(huán)等流程控制語句,可以自行設計算法并實現(xiàn),以處理更復雜的任務.本課件是可編輯的正常PPT課件1.3MATLAB界面代碼編輯器工作區(qū)命令窗口當前文件夾工具欄主界面本課件是可編輯的正常PPT課件1.3MATLAB界面1.工具欄主頁工具欄主要用于文件處理、數(shù)據(jù)導入、代碼分析、設置MATLAB環(huán)境和查看幫助文檔等.本課件是可編輯的正常PPT課件1.3MATLAB界面1.工具欄繪圖工具欄數(shù)據(jù)可視化的一種快捷方式,用戶通過它可以快速地繪制線圖、直方圖、餅圖、等高線圖、三維圖形等不同種類的圖形.只要在工作區(qū)中選中數(shù)據(jù),再根據(jù)需要點擊繪圖按鈕,MATLAB就可以呈現(xiàn)相應的數(shù)據(jù)圖形.本課件是可編輯的正常PPT課件1.3MATLAB界面1.工具欄應用程序工具欄包含了多個實用程序,可以進行曲線擬合、優(yōu)化、符號計算、控制系統(tǒng)設計與分析、信號分析、圖像處理、應用程序打包等.使用這些程序不需要編寫程序,或輸入少量代碼即可完成較復雜的工作.本課件是可編輯的正常PPT課件1.3MATLAB界面1.工具欄編輯器工具欄提供了編寫、調(diào)試程序所需的工具.本課件是可編輯的正常PPT課件1.3MATLAB界面1.工具欄發(fā)布工具欄提供了在注釋中進行格式化文本的工具.編程人員可以注釋中編寫程序的使用說明,并在發(fā)布后成為該程序的幫助文檔.注釋中可以進行類似Latex的格式控制,使幫助文檔更美觀.本課件是可編輯的正常PPT課件1.3MATLAB界面2.當前文件夾當前文件夾是MATLAB的工作目錄,MATLAB在編譯程序時遇到函數(shù)調(diào)用會按照一定的順序搜索被調(diào)函數(shù),而當前文件夾的優(yōu)先級要高于搜索路徑的優(yōu)先級,所以通常將當前正在編寫的程序保存在當前文件夾,以方便進行編輯和調(diào)式.可以通過點擊或來改變當前文件夾.本課件是可編輯的正常PPT課件1.3MATLAB界面3.代碼編輯器代碼編輯器是一個文本編輯器,具有代碼高亮顯示功能,可以使用注釋符號%%進行分段,MATLAB程序的編寫工作主要是在代碼編輯器中完成.程序編寫完成后即利用編輯器工具欄上的工具進行運行和調(diào)試程序.本課件是可編輯的正常PPT課件1.3MATLAB界面4.命令窗口命令窗口是MATLAB的主要交互窗口,用于輸入命令和顯示非圖形結(jié)果,類似于Windows的命令行窗口.本課件是可編輯的正常PPT課件1.3MATLAB界面5.歷史命令記錄窗口歷史命令記錄窗口自動記錄以前在命令窗口中執(zhí)行過的命令,并可將這些命令重新調(diào)入命令窗口中執(zhí)行.本課件是可編輯的正常PPT課件1.3MATLAB界面6.工作區(qū)工作區(qū)顯示當前MATLAB所管理的內(nèi)存中變量狀態(tài),可顯示變量的名稱、取值、維數(shù)大小、所占內(nèi)存大小、數(shù)據(jù)類型以及最大值、最小值等統(tǒng)計量,通過工作區(qū),編程人員可以清楚了解當前內(nèi)存中變量狀況.本課件是可編輯的正常PPT課件1.4MATLAB工具箱MATLAB工具箱是對MATLAB核心功能的擴展,每一個工具箱都是解決某個領域問題的函數(shù)集合.用戶也可以創(chuàng)建自己的工具箱,并分享給他人使用.MATLAB提供了大量工具箱,用戶可以在安裝MATLAB時選擇是否安裝.默認情況下工具箱放在“安裝目錄\Matlab\版本號\toolbox\”文件夾下.本課件是可編輯的正常PPT課件1.5MATLAB通用命令MATLAB的通用命令是指在操作軟件過程中經(jīng)常需要使用的命令.可以在命令行窗口的提示符>>后面輸入命令,也可以在程序中使用.分為常用管理命令、變量和工作區(qū)管理命令、命令行窗口控制、文件和工作環(huán)境管理等,有些命令可使用快捷鍵來執(zhí)行.本課件是可編輯的正常PPT課件1.5MATLAB通用命令1.常用管理命令命令說明命令說明clc清除命令窗口format控制輸出顯示格式clf清除圖形窗口help幫助文檔cputime獲取CPU時間input等待用戶輸入數(shù)據(jù)demo打開演示程序profile探查函數(shù)的執(zhí)行時間disp顯示文本quit退出MATLABdoc在幫助瀏覽器中打開幫助文檔warning顯示警告信息error顯示出錯信息

本課件是可編輯的正常PPT課件1.5MATLAB通用命令2.變量和工作區(qū)管理命令命令說明命令說明clear從工作區(qū)中清除變量save將工作區(qū)變量保存到磁盤load從磁盤中恢復變量who列出內(nèi)存中的變量pack內(nèi)存碎片整理whos列出變量的詳細信息本課件是可編輯的正常PPT課件1.5MATLAB通用命令3.文件和文件夾管理命令命令說明命令說明addpath將目錄添加到搜索路徑上matlabroot獲取MATLAB安裝的根目錄名cd改變工作目錄mkdir建立目錄copyfile復制文件path顯示搜索路徑delete刪除文件type顯示文件內(nèi)容dir顯示當前目錄或指定目錄下的文件matlabroot獲取MATLAB安裝的根目錄名本課件是可編輯的正常PPT課件1.5MATLAB通用命令4.快捷鍵命令說明命令說明Ctrl+[減少縮進Ctrl+R注釋一行或多行Ctrl+]增加縮進Ctrl+S保存Ctrl+A全選Ctrl+T取消注釋一行或多行Ctrl+F查找或替換Ctrl+W關閉文件Ctrl+I智能縮進Ctrl+Y取消撤銷Ctrl+N新建文件Ctrl+Z撤銷修改Ctrl+O打開文件Shift+Tab減少縮進Ctrl+P打印程序代碼Tab增加縮進或顯示完整命令編輯器窗口快捷鍵本課件是可編輯的正常PPT課件1.5MATLAB通用命令4.快捷鍵命令說明命令說明↑前一條歷史命令Ctrl+Q退出MATLAB↓后一條歷史命令Esc清楚輸入的命令Ctrl+C中斷當前程序的執(zhí)行過程Shift+Enter只換行不執(zhí)行代碼命令窗口快捷鍵本課件是可編輯的正常PPT課件1.5MATLAB通用命令4.快捷鍵命令說明命令說明Ctrl+Shift+Enter運行當前節(jié)并前進到下一節(jié)F10單步執(zhí)行,遇到函數(shù)調(diào)用不進入函數(shù)內(nèi)部Shift+F11執(zhí)行完當前函數(shù)的剩余部分,直至函數(shù)結(jié)束F11單步執(zhí)行,遇到函數(shù)調(diào)用進入函數(shù)內(nèi)部F5運行程序F12設置或取消斷點Ctrl+Shift+Enter運行當前節(jié)并前進到下一節(jié)F10單步執(zhí)行,遇到函數(shù)調(diào)用不進入函數(shù)內(nèi)部程序調(diào)試快捷鍵本課件是可編輯的正常PPT課件1.5MATLAB通用命令5.標點符號標點符號說明標點符號說明:冒號,有多種功能()小括號,有多種功能;分號,語句結(jié)束符,抑制輸出[]中括號,定義數(shù)組,逗號,多個數(shù)的分隔符{}大括號,定義單元數(shù)組%百分號,注釋標記...省略號,續(xù)行'單引號,字符串界定符~波浪號,無用結(jié)果代替符本課件是可編輯的正常PPT課件1.6 簡單MATLAB程序示例新建一個腳本文件,在編輯器中輸出下面程序:r=5;

%將5賦值給變量rs=2*pi*r^2;%計算以r為半徑的圓的面積s

%顯示結(jié)果點擊保存按鈕,將文件名命名為sample1.m.再點擊運行按鈕運行程序,將在命令窗口中顯示運行結(jié)果:>>sample1s=157.0796本課件是可編輯的正常PPT課件1.6 簡單MATLAB程序示例說明:程序中除了字符串和注釋可以有全角符號外,其余所有代碼必須是半角符號,包括標點符號、數(shù)字和字母.MATLAB的變量不需要預先定義即可直接使用;%后的內(nèi)容為注釋,不參與程序的執(zhí)行過程;如果程序編譯有錯,將在命令窗口中顯示出錯信息,通過點擊出錯信息中的鏈接,可跳到錯誤所在行或附件.程序文件名必須符合標識符的命名規(guī)則,只能由字母、數(shù)字和下劃線組成,且只能以字母開始.本課件是可編輯的正常PPT課件1.6 簡單MATLAB程序示例說明:可在命令窗口中輸入程序文件的主文件名來執(zhí)行該程序.如果要運行的程序不在當前文件夾和搜索路徑下,MATLAB將找不到該程序,可設置當前文件夾為程序所在文件夾,或添加程序所在文件夾到搜索路徑下.如果希望不顯示計算結(jié)果,則以分號結(jié)束語句;如果希望顯示計算結(jié)果,則不用分號結(jié)束.程序運行的文字結(jié)果顯示在命令窗口中,圖形結(jié)果在彈出的獨立窗口上顯示.本課件是可編輯的正常PPT課件MATLAB基礎及應用

本課件是可編輯的正常PPT課件第2章矩陣生成與運算本章學習重點掌握內(nèi)容:MATLAB基本數(shù)據(jù)類型數(shù)組生成與訪問數(shù)組元素數(shù)組變形數(shù)組運算與矩陣運算本課件是可編輯的正常PPT課件第2章矩陣生成與運算2.1

數(shù)據(jù)類型2.2數(shù)組生成2.3

訪問數(shù)組元素2.4

數(shù)組變形2.5

數(shù)組運算2.6

矩陣運算本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型數(shù)組(array)邏輯(logical)字符(char)數(shù)值(numeric)uint8、int8、int16、uint16、int32、uint32、int64、uint64雙精度(double)單精度(single)復數(shù)型(complex)元胞(cell)結(jié)構(gòu)體(stucture)表(table)函數(shù)句柄(functionhandle)MATLAB數(shù)據(jù)類型本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型1.整型整型又可細分為int8、int16、int32、int64、uint8、uint16、uint32、uint64共8種,前4種為有符號整型,后4種為無符號整型.示例:a=int8(12);b=int8(9);c=a+bc=21本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型2.浮點型浮點型有單精度浮點型(single)和雙精度浮點型(double)兩種,其中double是MATLAB的默認數(shù)據(jù)類型.示例:a=single(2.5);

%a是單精度浮點數(shù)b=3.1;

%b是雙精度浮點數(shù)c=b/a

%c是單精度浮點數(shù)c=1.2400本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型3.復數(shù)型MATLAB可以直接進行復數(shù)運算,使用未賦值的i或j表示虛數(shù)單位.

示例:a=1+2i;b=3+4i;c=a*bc=-5.0000+10.0000i本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型4.邏輯型邏輯型數(shù)據(jù)的取值只有兩種true和false,在顯示時為1和0,通常用來表示真/假、是/否、對/錯、成立/不成立等.示例:A=logical([0123])A=0111sum(A)ans=3本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型5.字符型在MATLAB中使用單引號對來表示字符型數(shù)據(jù),1×n的字符型數(shù)組稱為字符串.多個字符串可以使用多行數(shù)組來表示,但是各個字符串長度必須相同.

示例:a='Hello'%a是一個字符串,也是一個1×5的字符型數(shù)組a=HelloA=['abcd';'1234']A=abcd1234本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型6.單元單元也稱細胞或元胞,它可以容納任何類型的數(shù)據(jù),包括數(shù)組、結(jié)構(gòu)、單元數(shù)組,對于存儲復雜數(shù)據(jù)非常有用.示例:a='Hello'%a是一個字符串,也是一個1×5的字符型數(shù)組a=HelloA=['abcd';'1234']A=abcd1234本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型6.單元單元也稱細胞或元胞,它可以容納任何類型的數(shù)據(jù),包括數(shù)組、結(jié)構(gòu)、單元數(shù)組,對于存儲復雜數(shù)據(jù)非常有用.示例:a='Hello'%a是一個字符串,也是一個1×5的字符型數(shù)組a=HelloA=['abcd';'1234']A=abcd1234本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型6.單元取出單元數(shù)組元素有兩種用法,一種是使用大括號{},取出的結(jié)果是單元內(nèi)所裝的數(shù)據(jù),另一種是使用小括號(),取出的是單元本身.示例:A={[1,2],[3,4],[5],[6,7],[8],[9,10,11]};B=A{1};%取出第一個單元內(nèi)的數(shù)據(jù),結(jié)果是[1,2]C=A(1);%取出第一個單元,結(jié)果是{[1,2]}本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型7.結(jié)構(gòu)體結(jié)構(gòu)體是由若干個成員組成的一個整體,

每個成員包含成員名和值.生成結(jié)構(gòu)體對象的方法有多種.示例:student1.Name='Weixiaobao';student1.Age=20;student1.Email='wxb2138721@163.com';student1student1=Name:'Weixiaobao'Age:20Email:'wxb2138721@163.com'student2=struct('Name','Liwei','Age',21,'Email','Liwei321809@126.com')student2=Name:'Liwei'Age:21Email:'Liwei321809@126.com'本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型8.函數(shù)句柄函數(shù)句柄可以標識一個函數(shù),可以通過函數(shù)句柄來調(diào)用函數(shù).獲取函數(shù)句柄的方法有:1)變量名=@函數(shù)名;2)變量名=str2func('函數(shù)名');3)變量名=@(輸入?yún)?shù)列表)函數(shù)表達式.本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型8.函數(shù)句柄

示例:f=@sin;

%獲取sin函數(shù)的句柄f(pi/2)ans=1f=str2func('cos');

%獲取cos函數(shù)的句柄f(pi)ans=-1f=@(x)sin(x)./x;

%定義一個匿名函數(shù)f(0.001)ans=1.0000本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型9.表格表格是一種復雜的數(shù)據(jù)類型,可以處理包含表頭、行、列的數(shù)據(jù),與普通數(shù)組不同的是表格中不同列的數(shù)據(jù)類型可以不同,但是比單元數(shù)組又更加規(guī)范.表格由若干行向變量和若干列向變量組成.本課件是可編輯的正常PPT課件2.1數(shù)據(jù)類型9.表格學號姓名入學年份專業(yè)成績11253020123趙曉燕2002數(shù)學與應用數(shù)學8511253020124葉超2002信息與計算科學7811253130111苗苗2013物理學9111253140227趙懷安2014計算機科學與技術86studentID=[10223;10224;11311;11427];studentName=['趙曉燕';'葉超';'苗苗';'趙懷安'];%注意使用空格補齊startYear=[2002;2002;2013;2014];major=[2002;2002;2013;2014];score=[85;78;91;86];T=table(studentID,studentName,startYear,major,score)%生成表格本課件是可編輯的正常PPT課件2.2數(shù)組生成2.2.1一般數(shù)組生成如果知道數(shù)組的所有元素,可以通過羅列元素的方法生成數(shù)組.同一行之間的元素用空格或逗號分隔,行與行之間用分號分隔.示例:A=[6,3,5,1,2]%生成一行A=63512B=[8;2;4;7;5]%生成一列B=82475C=[123;456;789]%生成一個3×3矩陣C=123456789本課件是可編輯的正常PPT課件2.2數(shù)組生成

本課件是可編輯的正常PPT課件2.2數(shù)組生成A=zeros(3,3)

%3階零矩陣A=000000000B=ones(3,3)

%3階1矩陣B=111111111C=eye(3)

%3階單位陣C=100010001F=inf(3,3)

%3階無窮大矩陣F=InfInfInfInfInfInfInfInfInf本課件是可編輯的正常PPT課件2.2數(shù)組生成D=true(3,3)%3階真矩陣D=111111111E=false(3,3)%3階假矩陣E=000000000G=rand(3,3)%3階隨機矩陣G=0.81470.91340.27850.90580.63240.54690.12700.09750.9575H=magic(4)%4階魔方陣H=16231351110897612414151本課件是可編輯的正常PPT課件2.2數(shù)組生成V=diag(H)%獲取矩陣H的主對角元素,構(gòu)成一個列向量V=161161X=1:8X=12345678Y=linspace(-3,3,7)%將區(qū)間[-3,3]均勻剖分為6份,生成7個分點Y=-3-2

-10123A=floor(2*rand(3,3))%生成一個3×3的數(shù)組,每個元素是0或1的隨機整數(shù)A=101000011本課件是可編輯的正常PPT課件2.2數(shù)組生成2.2.3稀疏矩陣當大型矩陣中只包含少量非零元素時,使用稀疏矩陣來存儲可節(jié)約大量空間.相對于稀疏矩陣,普通矩陣稱為滿矩陣.可以將所有MATLAB內(nèi)置算術運算、邏輯運算和索引運算應用于稀疏矩陣,或應用于稀疏矩陣和滿矩陣兩者.對稀疏矩陣執(zhí)行的運算返回稀疏矩陣,對滿矩陣執(zhí)行的運算返回滿矩陣.本課件是可編輯的正常PPT課件2.2數(shù)組生成創(chuàng)建稀疏矩陣的方法有:spalloc:為稀疏矩陣分配空間spdiags:提取非零對角線并創(chuàng)建稀疏帶狀對角矩陣speye:稀疏單位矩陣sprand:稀疏均勻分布隨機矩陣sprandn:稀疏正態(tài)分布隨機矩陣sprandsym:稀疏對稱隨機矩陣sparse:創(chuàng)建稀疏矩陣本課件是可編輯的正常PPT課件2.2數(shù)組生成常用的稀疏矩陣操作函數(shù)有:issparse:確定輸入是否為稀疏矩陣nnz:非零矩陣元素的數(shù)目nonzeros:非零矩陣元素nzmax:為非零矩陣元素分配的存儲量spfun:將函數(shù)應用于非零稀疏矩陣元素spones:將非零稀疏矩陣元素替換為1spparms:為稀疏矩陣例程設置參數(shù)spy:可視化矩陣的稀疏模式find:查找非零元素的索引和值full:將稀疏矩陣轉(zhuǎn)換為滿存儲本課件是可編輯的正常PPT課件2.2數(shù)組生成S=spalloc(1000,1000,50);

%創(chuàng)建1000×1000稀疏矩陣,使之具有50個非零值的空間I=speye(1000);%創(chuàng)建稀疏單位方陣S=sparse(1000,2000);

%生成零稀疏矩陣S=sparse(A);%將滿矩陣轉(zhuǎn)換為稀疏矩陣

A=sprand(1000,1000,0.0001);n=nnz(A);

%非零項個數(shù)spy(A);

%可視化矩陣的稀疏模式本課件是可編輯的正常PPT課件2.2數(shù)組生成2.2.4符號矩陣MATLAB支持符號運算,可以進行公式推導、微積分運算、方程求解等運算.在進行符號運算前,首先要定義符號變量或符號矩陣.定義單個符號變量或符號矩陣使用sym命令,定義多個符號變量使用syms命令.x=sym('x');%定義符號變量y=3*x^2;dy=diff(y,x)%求導F=int(y,x)%求不定積分symsabc;%定義多個符號變量z=a*x^2+b*x+c;solve(z,x)%求方程的解A=sym('[a,2*b;3*c,0]');%定義符號矩陣det(A)%計算行列式的值inv(A)%計算符號矩陣的逆本課件是可編輯的正常PPT課件2.3訪問數(shù)組元素MATLAB可以訪問單個數(shù)組元素,也可以批量訪問數(shù)組元素.一維數(shù)組V的第i個元素:V(i)二維數(shù)組A的第i行第j列元素:A(i,j)二維數(shù)組A的第i行:A(i,:),結(jié)果為一行向量二維數(shù)組A的第j列:A(:,j),結(jié)果為一列向量子矩陣:A(i1:i2,j1:j2),

矩陣A的第i1行到i2行與第j1列到j2列交叉位置的所有元素本課件是可編輯的正常PPT課件2.3訪問數(shù)組元素A=[123;456;789];A(1,3)ans=3A(2,:)%獲取第2行ans=456A(:,3)%獲取第3列ans=369A(1:2,2:3)%獲取1-2行、2-3列元素組成的子矩陣ans=2356A(2:end,:)

%獲取從第2行到最后一行的所有元素組成的子矩陣ans=456789本課件是可編輯的正常PPT課件2.3訪問數(shù)組元素更一般地,數(shù)組下標可以是任意的整數(shù)數(shù)組,只要下標不越界即可.獲取指定行、列交叉位置元素組成的數(shù)組:A(U,V).如果U,V是兩個整數(shù)向量,U=[u1,u2,?,um],V=[v1,v2,?,vn],則依次取出A的第u1,u2,?,um行與第v1,v2,?,vn列交叉位置的所有元素.本課件是可編輯的正常PPT課件2.3訪問數(shù)組元素A([12],[31])%取出矩陣A的第1、2行第3、1列的元素組成一個矩陣ans=3164A([11],:)%取出矩陣A的第1行兩次組成一個矩陣ans=123123A(:,ones(1,5))%取出矩陣A的第1列5次組成一個矩陣ans=111114444477777A(1:2:end,2:2:end)%取出矩陣A的奇數(shù)行偶數(shù)列組成一個矩陣ans=2

8本課件是可編輯的正常PPT課件2.3訪問數(shù)組元素MATLAB還可以使用邏輯數(shù)組作為下標,表示取出邏輯數(shù)組中元素為真的位置對應的原數(shù)組元素,構(gòu)成一個列向量.要求邏輯數(shù)組與原數(shù)組同維.示例:B=A>5%B與A是同維邏輯矩陣,A的元素大于5的位置為真,其它為假B=000001111A(B)%取出A中所有大于5的元素,構(gòu)成一個列向量.與A(A>5)結(jié)果相同ans=786

9本課件是可編輯的正常PPT課件2.4數(shù)組變形改變數(shù)組的維數(shù),提取數(shù)組的行、列,刪除行、列,合并數(shù)組等操作統(tǒng)稱為數(shù)組變形.矩陣轉(zhuǎn)置:A.'或A'.若A是實矩陣,則A.'與A'同為轉(zhuǎn)置;若A是復數(shù)矩陣,則A.'為轉(zhuǎn)置,A'為共軛轉(zhuǎn)置矩陣合并:C=[A,B]或C=[AB](橫向),C=[A;B](縱向).矩陣重復:B=repmat(A,s,t)

.

由矩陣A橫向重復s次,縱向重復t次的一個大矩陣本課件是可編輯的正常PPT課件2.4數(shù)組變形刪除行或列:A(i,:)=[](刪除第i行),A(:,j)=[](刪除第j列).若i或j是向量,則可刪除多行或多列。矩陣翻轉(zhuǎn):B=A(:,end:?1:1)或B=fliplr(A)(橫向翻轉(zhuǎn)),B=A(end:?1:1,:)或B=flipud(A)

(縱向翻轉(zhuǎn)),B=flipdim(A,dim)(按指定維數(shù)翻轉(zhuǎn))。旋轉(zhuǎn)矩陣:B=rot90(A,k),將矩陣逆時針旋轉(zhuǎn)k×90°,其中k=±1,±2,?維數(shù)重置:B=reshape(A,[st]),改變矩陣的行數(shù)和列數(shù),s×t等于A的元素個數(shù)。如果希望變成一列,可以使用B=A(:).本課件是可編輯的正常PPT課件2.4數(shù)組變形A=[123;456;789];B=[100;010;001];H=A(:);%將數(shù)組A的所有元素排成一列H'

%將列向量轉(zhuǎn)置成行向量ans=147258369C=[A,B]%橫向合并兩個矩陣C=123100456010789001D=[A;B]%縱向合并兩個矩陣D=123456789100010001本課件是可編輯的正常PPT課件2.4數(shù)組變形C(1,:)=[]%刪除第一行C=456010789001D(:,end)=[]%刪除最后一列D=124578100100fliplr(B)%將B橫向翻轉(zhuǎn)ans=001010100rot90(A,1)%將A逆時針旋轉(zhuǎn)90度ans=369258147本課件是可編輯的正常PPT課件2.4數(shù)組變形reshape(C,[34])%將C重新排列成3×4矩陣ans=480076005911B=repmat(A,1,2)%將A橫向復制1遍,縱向復制2遍B=123123456456789789本課件是可編輯的正常PPT課件2.4數(shù)組變形MATLAB可以使用size、length、numel、ndims等函數(shù)獲取數(shù)組的維數(shù)相關信息.[m,n]=size(A);

%m為行數(shù),n為列數(shù)m=size(A,1);

%獲取行數(shù)n=size(A,2);

%獲取列數(shù)n=length(V);

%獲取向量長度n=ndims(A);

%獲取維數(shù)n=numel(A);%獲取元素個數(shù)本課件是可編輯的正常PPT課件2.5數(shù)組運算數(shù)組運算是指對數(shù)組元素進行的運算,可以看成是一種批量數(shù)據(jù)處理.對于二元運算符,要求參與運算的兩個數(shù)組是同維數(shù)組,或其中一個是標量,另一個是數(shù)組.如果兩個是同維數(shù)組,則將對應的元素進行運算;如果其中一個是標量,另一個是數(shù)組,則該標量與數(shù)組的每一個元素進行運算.MATLAB數(shù)組運算有算術運算、賦值運算、關系運算、邏輯運算、位運算、集合運算及數(shù)學函數(shù)運算等.本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.1算術運算數(shù)組算術運算有加(+)、減(?)、乘(.*)、除(./)、左除(.\)及乘方(.^),其基本運算規(guī)則是對數(shù)組中的元素作相應的算術運算.語法規(guī)則如下:加法:A+B減法:A?B乘法:A.*B除法:A./B左除法A.\B乘方:A.^n本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.2賦值運算MATLAB可以對數(shù)組整體賦值,也可以對數(shù)組局部賦值,還可以利用賦值運算符實現(xiàn)一些特殊的操作.A=rand(3)%生成3×3隨機數(shù)組,并賦值給AA=0.01800.56530.03230.81660.47670.68750.33450.76000.9762A(1,:)=rand(1,3)%生成1×3隨機數(shù)組,并賦值給A的第一行A=0.50450.73680.53520.81660.47670.68750.33450.76000.9762本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.2賦值運算A([1,2],:)=A([2,1],:)%交換A的第1行和第2行A=0.81660.47670.68750.50450.73680.53520.33450.76000.9762A(:,2)=[]

%刪除A的第2列A=0.81660.68750.50450.53520.33450.9762本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.3關系運算關系運算符有6個:<

<=

>

>=

==

~=用于比較兩個數(shù)的大小關系,運算結(jié)果是邏輯值.如果運算數(shù)中有一個是數(shù)組,則結(jié)果是一個同維的邏輯數(shù)組.本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.3關系運算A=rand(3)%生成3×3隨機數(shù)組A=0.37410.48440.08850.78910.06380.72790.17860.43220.1700B=rand(3)B=0.90450.78930.73340.29890.05880.36020.15890.48390.8257C=A>B%兩個同維數(shù)組進行比較

C=000111100D=A>0.5%數(shù)組與標量進行比較D=000101000本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.4邏輯運算邏輯運算要求運算數(shù)是邏輯值,運算結(jié)果也是邏輯值.如果運算數(shù)不是邏輯值,則會自動轉(zhuǎn)換成邏輯值再進行運算.邏輯運算規(guī)則如表下:邏輯運算有數(shù)組邏輯運算和標量邏輯運算兩類.aba&ba|bxor(a,b)~a000001010111111100本課件是可編輯的正常PPT課件2.5數(shù)組運算1.數(shù)組邏輯運算數(shù)組邏輯運算的運算數(shù)是數(shù)組,如果其中一個數(shù)組,另一個是標量,則數(shù)組中的每一個元素與標量進行邏輯運算,結(jié)果是一個邏輯數(shù)組.邏輯與:A&B

邏輯或:A|B

邏輯異或:xor(A,B)邏輯非:~A本課件是可編輯的正常PPT課件2.5數(shù)組運算1.數(shù)組邏輯運算A=rand(1,4)<0.5%生成隨機0-1向量A=1100B=rand(1,4)<0.5%生成隨機0-1向量B=1010C=A&B%邏輯與運算C=1000C=A|B%邏輯或運算C=1110C=xor(A,B)%邏輯異或運算C=0110~A%邏輯非運算ans=

0011本課件是可編輯的正常PPT課件2.5數(shù)組運算2.標量邏輯運算標量邏輯運算的運算數(shù)只能是標量,運算結(jié)果是邏輯型標量.標量邏輯運算常用在if語句和while語句的條件表達式中.邏輯與:a&&b邏輯或:a||b值得注意的是標量邏輯運算具有“短路”特性.即當a為false時,a&&b的結(jié)果必然為false,在執(zhí)行過程中不再去計算b的值,直接給出結(jié)果;當a為true時,a||b的結(jié)果必然為true,在執(zhí)行過程中也不再去計算b的值,直接給出結(jié)果.本課件是可編輯的正常PPT課件2.5數(shù)組運算2.標量邏輯運算x=-4;y=-3;z=-2;x<y&&y<zans=1x<y<z%注意與上面的結(jié)果不同ans=0x<y||a>0%當x<y為真時,||短路了,a>0不計算ans=1x<y|a>0%|不具備短路功能,計算a>0時因為a未定義出現(xiàn)錯誤未定義函數(shù)或變量'a'本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.5位運算位運算是按二進制位進行的運算,參與運算的對象必須是相同類型的數(shù)組.有位與(bitand)、位或(bitor)、位異或(bitxor)、位反(bitcmp)、位移(bitshift)、位獲取(bitget)以及位設置(bitset)等運算.本課件是可編輯的正常PPT課件2.5數(shù)組運算1.位與bitand(a,b)返回a和b對應元素按位與的結(jié)果.例如bitand(int8(2),int8(7))(00000010)2(00000111)22(00000010)2本課件是可編輯的正常PPT課件2.5數(shù)組運算2.位或bitor(a,b)返回a和b對應元素按位或的結(jié)果.例如bitor(int8(2),int8(7))(00000010)2(00000111)27(00000111)2本課件是可編輯的正常PPT課件2.5數(shù)組運算3.位異或bitxor(a,b)

返回a和b對應元素按位異或的結(jié)果.例如bitxor(int8(2),int8(7))(00000010)2(00000111)25(00000101)2本課件是可編輯的正常PPT課件2.5數(shù)組運算4.位反bitcmp(a)返回a元素按位取反的結(jié)果.例如bitcmp(int8(2))(00000010)2-3(11111101)2本課件是可編輯的正常PPT課件2.5數(shù)組運算5.位移bitshift(a,k)返回a元素按位左移k位的結(jié)果.例如bitshift(int8(2),2)(00000010)28(00001000)2本課件是可編輯的正常PPT課件2.5數(shù)組運算6.位獲取bitget(a,k)

返回a元素二進制位的第k位的結(jié)果.例如bitget(int8(2),2)(00000010)211本課件是可編輯的正常PPT課件2.5數(shù)組運算7.位設置bitset(a,k)

返回a元素將二進制位的第k位設置為1的結(jié)果.例如bitset(int8(4),2)(00000100)26(00000110)2本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.6集合運算在進行集合運算時,MATLAB將數(shù)組作為集合來進行運算.集合運算有集合并(union)、集合交(intersect)、集合差(setdiff)、集合異或(setxor)等運算.本課件是可編輯的正常PPT課件2.5數(shù)組運算1.集合并union(A,B)

返回集合A和B的并集,即A和B中所有元素去掉重復部分后的集合.A=[1,1,2,2,5,5,5,6,6,6];B=[2,2,3,3,4,4,5,5];C=union(A,B)C=123456本課件是可編輯的正常PPT課件2.5數(shù)組運算2.集合交intersect(A,B)返回集合A和B的交集,即A與B中相同的元素.A=[1,1,2,2,5,5,5,6,6,6];B=[2,2,3,3,4,4,5,5];C=intersect(A,B)C=25本課件是可編輯的正常PPT課件2.5數(shù)組運算3.集合差setdiff(A,B)

返回集合A和B的差,即在A中但不在B中的元素.A=[1,1,2,2,5,5,5,6,6,6];B=[2,2,3,3,4,4,5,5];C=setdiff(A,B)C=16本課件是可編輯的正常PPT課件2.5數(shù)組運算4.集合異或setxor(A,B)

返回集合A和B中不相同的元素.A=[1,1,2,2,5,5,5,6,6,6];B=[2,2,3,3,4,4,5,5];C=setxor(A,B)C=1346本課件是可編輯的正常PPT課件2.5數(shù)組運算5.刪除重復元素unique(A)

返回集合A去掉重復元素后的集合,使每個元素都只有唯一一個.A=[1,1,2,2,5,5,5,6,6,6];B=[2,2,3,3,4,4,5,5];C=unique(A)C=1256本課件是可編輯的正常PPT課件2.5數(shù)組運算6.判斷是否屬于集合元素ismember(A,B)

對每一個A中的元素ai,檢測集合B是否包含ai,如果包含則返回true,否則返回false,結(jié)果是與A同維的邏輯數(shù)組.A=[1,1,2,2,5,5,5,6,6,6];B=[2,2,3,3,4,4,5,5];C=ismember(A,B)C=

0011111000本課件是可編輯的正常PPT課件2.5數(shù)組運算2.5.7數(shù)學函數(shù)MATLAB提供了大量的數(shù)學函數(shù),大大方便了科學工作者進行各種數(shù)學運算,包括三角雙曲函數(shù)、統(tǒng)計函數(shù)、指數(shù)對數(shù)函數(shù)、復數(shù)函數(shù)、取整求余函數(shù)等.值得注意的是,絕大多數(shù)的數(shù)學函數(shù)都支持將數(shù)組作為函數(shù)參數(shù)。當參數(shù)為數(shù)組時,函數(shù)將對數(shù)組中的每一個元素計算對應的函數(shù)值,返回值是與參數(shù)同維的數(shù)組。本課件是可編輯的正常PPT課件2.5數(shù)組運算1.三角函數(shù)和雙曲函數(shù)MATLAB的三角函數(shù)和雙曲函數(shù)比較豐富,其函數(shù)名見課本表2.3和表2.4。例2.2繪制y=sin(x),x∈[?π,π]函數(shù)圖像.x=-pi:0.1:pi;%從-pi到pi,以0.1為步長進行取點,得到一個向量y=sin(x);%對x中的每一個數(shù)計算對應的sin函數(shù)值plot(x,y);%以x和y為坐標點繪圖本課件是可編輯的正常PPT課件2.5數(shù)組運算2.統(tǒng)計函數(shù)MATLAB包含了大量的統(tǒng)計函數(shù),常用統(tǒng)計函數(shù)如下:函數(shù)名說明函數(shù)名說明sum求和cumsum累加prod求積cumprod累積diff差分gradient梯度max最大值min最小值mean平均值median中位數(shù)var方差std標準差cov協(xié)方差corrcoef相關系數(shù)sort排序

本課件是可編輯的正常PPT課件2.5數(shù)組運算A=rand(3)A=0.22900.44290.10320.01050.89500.18780.68780.80210.7388V=sum(A)%將矩陣A的元素按列求和,結(jié)果為一個行向量V=0.92742.14001.0298V=sum(A,2)%將矩陣A的元素按行求和,結(jié)果為一個列向量V=0.77521.09332.2287x=sum(A(:))%求數(shù)組A的所有元素之和x=4.0972本課件是可編輯的正常PPT課件2.5數(shù)組運算V=rand(1,6)

%生成隨機向量V=0.27050.56240.25410.55270.56280.4551U=diff(V)%差分,即后項減前項U=0.2920-0.30830.29850.0101-0.1077[c,k]=min(V)%求向量V的最小值及其位置c=0.2541k=3[c,k]=max(V)%求向量V的最大值及其位置c=0.5628k=5[U,K]=sort(V)%將向量V從小到大進行排序,并給出排序前各元素的位置U=0.25410.27050.45510.55270.56240.5628K=316425本課件是可編輯的正常PPT課件2.5數(shù)組運算3.指數(shù)對數(shù)函數(shù)MATLAB提供了一些指數(shù)函數(shù)和對數(shù)函數(shù):函數(shù)名說明函數(shù)名說明sqrt平方根pow2以2為底的指數(shù)exp以e為底的指數(shù)log自然對數(shù)log2以2為底的對數(shù)log10常用對數(shù)本課件是可編輯的正常PPT課件2.5數(shù)組運算4.復數(shù)函數(shù)MATLAB大多數(shù)的數(shù)學函數(shù)也都可以對復數(shù)進行運算,這里所說的復數(shù)函數(shù)是專門用于對復數(shù)進行一些操作的函數(shù).函數(shù)名說明函數(shù)名說明complex構(gòu)造復數(shù)isreal判斷是否為實矩陣real復數(shù)的實部imag復數(shù)的虛部abs復數(shù)的模或?qū)崝?shù)絕對值conj共軛復數(shù)angle復數(shù)的相角

本課件是可編輯的正常PPT課件2.5數(shù)組運算示例:A=[1+2i,4-2i,1-6i,4i]%定義復數(shù)向量A=1.0000+2.0000i4.0000-2.0000i1.0000-6.0000i0.0000+4.0000iX=real(A)%取復數(shù)向量A的實部X=1410Y=imag(A)%取復數(shù)向量A的虛部Y=2-2-64abs(A)%計算復數(shù)向量A的模ans=2.23614.47216.08284.0000本課件是可編輯的正常PPT課件2.5數(shù)組運算5.取整求余函數(shù)MATLAB有多種取整和求余函數(shù),如下表所示:mod和rem都可用于求余,當x和y的正負號一樣的時候,mod(x,y)和rem(x,y)兩個函數(shù)結(jié)果是等同的;當x和y的符號不同時,rem(x,y)函數(shù)結(jié)果的符號和x的相同,而mod(x,y)和y相同.函數(shù)名說明函數(shù)名說明floor向下取整ceil向上取整round四舍五入取整fix零方向取整mod求余數(shù)rem求余數(shù)sign符號函數(shù)

本課件是可編輯的正常PPT課件2.6矩陣運算矩陣運算是針對矩陣整體的數(shù)學運算,包括算術運算、矩陣分析、線性方程組、矩陣分解以及矩陣函數(shù)運算.2.6.1矩陣算術運算矩陣加法:A+B

矩陣減法:A?B矩陣乘法:A*B

矩陣乘方:A^n,計算A的n次方,n是標量矩陣(右)除法:A/B,計算AB?1

矩陣左除法:A\B,計算A?1B本課件是可編輯的正常PPT課件2.6矩陣運算示例:A=[121;314;250];B=[101;010;110];C=A*B%矩陣相乘C=231753252C=A/B%AB-1C=12042-1032C=A*inv(B)%AB-1C=12042-1032本課件是可編輯的正常PPT課件2.6矩陣運算示例:C=A*B^(-1)

%AB-1C=12042-1032C=A\B%A-1BC=

-1.44441.3333-2.22220.7778-0.33330.88890.8889-0.66671.4444C=inv(A)*B

%A-1BC=-1.44441.3333-2.22220.7778-0.33330.88890.8889-0.66671.4444本課件是可編輯的正常PPT課件2.6矩陣運算2.6.2矩陣的初等變換利用矩陣的算術運算可以實現(xiàn)矩陣的初等變換.(1)交換兩行:A([i,j],:)=A([j,i],:);(2)某一行乘以一個常數(shù):A(i,:)=c*A(i,:);(3)某一行乘以一個常數(shù)加到另一行:A(j,:)=c*A(i,:)+A(j,:).本課件是可編輯的正常PPT課件2.6矩陣運算示例:A=rand(3)A=0.60650.09870.19180.08160.72040.64820.72860.91390.4076A([1,2],:)=A([2,1],:)%交換兩行A=0.08160.72040.64820.60650.09870.19180.72860.91390.4076A(2,:)=2*A(2,:)%第2行乘以2A=0.08160.72040.64821.21290.19740.38350.72860.91390.4076A(3,:)=3*A(2,:)+A(3,:)%第2行乘以3加到第3行A=0.08160.72040.64821.21290.19740.38354.36741.50611.5582本課件是可編輯的正常PPT課件2.6矩陣運算2.6.3 矩陣分析矩陣分析主要是計算矩陣的各項特征屬性,在矩陣論、線性代數(shù)中有重要應用.1-范數(shù):norm(A,1)2-范數(shù):norm(A)或norm(A,2)無窮范數(shù):norm(A,Inf)p-范數(shù):norm(A,p)本課件是可編輯的正常PPT課件2.6矩陣運算2.6.3 矩陣分析矩陣的秩:rank(A)行列式的值:det(A)矩陣的逆:inv(A)矩陣的偽逆:pinv(A)矩陣的跡:trace(A)矩陣的簡化梯形形式:rref(A)矩陣的條件數(shù):cond(A)矩陣的特征值和特征向量:[V,D]=eig(A)本課件是可編輯的正常PPT課件2.6矩陣運算A=[213;021;142];rank(A)%矩陣的軼ans=3det(A)%行列式的值ans=

-5B=inv(A)%逆矩陣B=0-2.00001.0000-0.2000-0.20000.40000.40001.4000-0.8000A*Bans=1.0000-0.00000.000001.00000001.0000C=pinv(A)%偽逆

-0.0000-2.00001.0000-0.2000-0.20000.4000

0.40001.4000-0.8000trace(A)

%矩陣的跡ans=6示例:本課件是可編輯的正常PPT課件2.6矩陣運算rref(A)%簡化的行梯形形式ans=100010001cond(A)

%條件數(shù)ans=

16.3203[V,D]=eig(A)%特征值和特征向量V=0.6874-0.9693-0.75860.26330.2436-0.2252-0.6769-0.0349-0.6114D=-0.57120001.85670004.7145示例:本課件是可編輯的正常PPT課件2.6矩陣運算2.6.4線性方程組MATLAB求解線性方程組總體上分為直接法和間接法兩類.直接法通過求線性方程組的系數(shù)矩陣的逆來求解方程,而間接法則是通過構(gòu)造迭代公式,通過迭代法逐步逼近解.本課件是可編輯的正常PPT課件2.6矩陣運算1.直接法設有兩個矩陣A和B,求解X使得AX=B.若A可逆,則下面方法都可以求解:X=A\BX=A^(-1)*BX=inv(A)*BX=linsolve(A,B)本課件是可編輯的正常PPT課件2.6矩陣運算A=[326;157;812];%系數(shù)矩陣B=[1;5;3];%右邊項X=A\B;X=A^(-1)*B;X=inv(A)*B;X=linsolve(A,B)X=0.29911.7179-0.5556A*X%驗證ans=1.00005.00003.0000示例:本課件是可編輯的正常PPT課件2.6矩陣運算1.直接法如果A不是方陣,或是奇異的方陣,則下面的方法可以求AX=B的一個解或最小二乘意義下的最優(yōu)解.X=A\BX=(A'*A)^(-1)*(A'*B)X=pinv(A)*BX=linsolve(A,B)本課件是可編輯的正常PPT課件2.6矩陣運算A=[1-11;0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論