MATLAB入門教程-updated20131008_第1頁
MATLAB入門教程-updated20131008_第2頁
MATLAB入門教程-updated20131008_第3頁
MATLAB入門教程-updated20131008_第4頁
MATLAB入門教程-updated20131008_第5頁
已閱讀5頁,還剩120頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MATLAB編程入門編程入門主要內(nèi)容主要內(nèi)容使用簡介使用簡介命令行編輯入門命令行編輯入門常用函數(shù)常用函數(shù)畫圖介紹畫圖介紹MATLAB數(shù)值運算數(shù)值運算編程基礎編程基礎符合運算符合運算MATLAB 使用簡介使用簡介是一種解釋式語言是一種解釋式語言. . 簡單易學、代碼短小高效簡單易學、代碼短小高效、計算功能強大、圖形繪制和處理容易、可擴、計算功能強大、圖形繪制和處理容易、可擴展性強展性強. .矩陣的數(shù)值運算、數(shù)值分析、模擬矩陣的數(shù)值運算、數(shù)值分析、模擬數(shù)據(jù)可視化、數(shù)據(jù)可視化、 2D/3D的繪圖的繪圖 可以與可以與FORTRAN、C/C+做數(shù)據(jù)鏈接做數(shù)據(jù)鏈接幾百個核心內(nèi)部函數(shù)幾百個核心內(nèi)部函數(shù)大量可

2、選用的工具箱大量可選用的工具箱MATLAB是是Matrix Laboratory的縮寫的縮寫鼠標雙擊鼠標雙擊Windows桌面上圖標桌面上圖標在在Windows“開始開始”菜單的菜單的 “程序程序”選項中選擇選項中選擇 “ MATLAB”退出退出MATLAB命令窗口鍵入命令窗口鍵入“quit”或或 “Ctrl+Q”鼠標選擇菜單鼠標選擇菜單 file Exit MATLABMATLAB 使用簡介使用簡介啟動啟動 MATLABMATLAB桌面桌面命令窗口命令窗口工作空間瀏覽工作空間瀏覽命令歷史窗命令歷史窗口口命令窗口、編輯窗口、圖形窗口命令窗口、編輯窗口、圖形窗口MATLAB 使用簡介使用簡介 n

3、=0:1:63;S=sum(2.n)S = 1.8447e+019例例2. 計算計算sin x 在在 處的值處的值3,4,6,8 clear x=pi./8,6,4,3,y=sin(x)y = 0.3827 0.5000 0.7071 0.8660MATLAB 使用簡介使用簡介-例例1.計算級數(shù)計算級數(shù):S=1+2+22+23+263= 6302nn例例3. 衰減振蕩曲線函數(shù)衰減振蕩曲線函數(shù): y=e -0.5x sin 5x圖形圖形.x=0:0.1:4*pi; y= exp(-0.5*x) ;y1=y .*sin(5*x);plot(x,y1,x,y,-b,x,-y,-r)MATLAB 使用

4、簡介使用簡介命令行編輯入門命令行編輯入門- 命令行基礎命令行基礎 簡單運算簡單運算例例1.求求12+2(7-4)32(12+2*(7-4)/32ans = 2 MATLAB表達式輸入表達式輸入常見兩種形式常見兩種形式:表達式;變量表達式表達式;變量表達式例例2.建立變量建立變量y使其值為使其值為3,并計算并計算3-xyy時時x的的值值.命令行編輯入門命令行編輯入門-y=3;x=y3-sqrt(y)x =25.2679 指令的續(xù)行輸入指令的續(xù)行輸入若一個表達式在一行寫不下若一個表達式在一行寫不下,可換行可換行,但必須在但必須在行尾加上四個英文句點行尾加上四個英文句點.例例3.求求的值的值.111

5、111112345678S S=1-1/2+1/3-1/4+1/5-1/6. +1/7-1/8S =0.6345命令行編輯入門命令行編輯入門- MATLAB變量及管理變量及管理 變量名的命名規(guī)則變量名的命名規(guī)則 以字母開頭以字母開頭,后面可跟字母、數(shù)字和下短線后面可跟字母、數(shù)字和下短線; 大小寫字母有區(qū)別大小寫字母有區(qū)別; 不超過不超過31個字符個字符.例如例如cel2_3,f,F和和Dui31是四個合法的變量是四個合法的變量.變量的名字最好能體現(xiàn)變量本身代表的物理意義,同時最好不要與變量的名字最好能體現(xiàn)變量本身代表的物理意義,同時最好不要與MATLABMATLAB預定義的變量或函數(shù)名重復。預

6、定義的變量或函數(shù)名重復。比如:高度:比如:高度:heightheight密度:密度:density density 或者或者 rho rho但長度最好不用但長度最好不用lengthlength,因為,因為lengthlength被被MATLABMATLAB預定義了,用于計算預定義了,用于計算向量或向量或矩陣矩陣的長度。如果自己用了的長度。如果自己用了lengthlength,MATLABMATLAB預定義就會失效。預定義就會失效。命令行編輯入門命令行編輯入門-MATLAB預定義變量預定義變量ans 用于結果的缺省變量名用于結果的缺省變量名pi 圓周率圓周率 eps 計算機的最小數(shù)計算機的最小數(shù)

7、inf 無窮大無窮大NaN 不定量不定量i或或j i=j=-1的開方的開方realmin 最小可用正實數(shù)最小可用正實數(shù)realmax 最大可用正實數(shù)最大可用正實數(shù)sin 正弦函數(shù)正弦函數(shù) asin 反正弦函數(shù)反正弦函數(shù) cos 余弦函數(shù)余弦函數(shù) acos 反余弦函數(shù)反余弦函數(shù) tan 正切函數(shù)正切函數(shù) atan 反正切函數(shù)反正切函數(shù) cot 余切函數(shù)余切函數(shù) acot 反余切函數(shù)反余切函數(shù) sec 正割函數(shù)正割函數(shù) asec 反正割函數(shù)反正割函數(shù) csc 余割函數(shù)余割函數(shù) acsc 反余割函數(shù)反余割函數(shù) sinh 雙曲正弦函數(shù)雙曲正弦函數(shù) asinh 反雙曲正弦函數(shù)反雙曲正弦函數(shù) cosh 雙

8、曲余弦函數(shù)雙曲余弦函數(shù) acosh 反雙曲余弦函數(shù)反雙曲余弦函數(shù) tanh 雙曲正切函數(shù)雙曲正切函數(shù) atanh 反雙曲正切函數(shù)反雙曲正切函數(shù) sech 雙曲正割函數(shù)雙曲正割函數(shù) asech 反雙曲正割函數(shù)反雙曲正割函數(shù) csch 雙曲余割函數(shù)雙曲余割函數(shù) acsch 反雙曲余割函數(shù)反雙曲余割函數(shù) coth 雙曲余切函數(shù)雙曲余切函數(shù) acoth 反雙曲余切函數(shù)反雙曲余切函數(shù) MATLAB的函數(shù)的函數(shù)MATLAB 常用函數(shù)常用函數(shù)abs(x) 絕對值絕對值sqrt(x)開平方開平方conj(z)共軛復數(shù)共軛復數(shù)round(x) 四舍五入四舍五入floor(x) 舍去正小數(shù)舍去正小數(shù)rat(x)

9、化為分數(shù)表示化為分數(shù)表示gcd(x,y) 最大公因數(shù)最大公因數(shù)exp(x) 自然指數(shù)自然指數(shù)log(x) e為底的對數(shù)為底的對數(shù)Log10(x) 10為底的對數(shù)為底的對數(shù)angle(z)復數(shù)復數(shù)z的相角的相角real(z)復數(shù)復數(shù)z的實部的實部imag(z)復數(shù)復數(shù)z的虛部的虛部fix(x) 舍去小數(shù)取整舍去小數(shù)取整ceil(x)加入正小數(shù)取整加入正小數(shù)取整sign(x)符號函數(shù)符號函數(shù)rem(x,y)求求x除以除以y的余數(shù)的余數(shù)lcm(x,y)最小公倍數(shù)最小公倍數(shù)pow2(x)以以2為底的指數(shù)為底的指數(shù)log2(x)以以2為底的對數(shù)為底的對數(shù)MATLAB 常用函數(shù)介紹常用函數(shù)介紹linspa

10、ce(x1, x2, n)邏輯運算邏輯運算MATLAB提供了3種邏輯運算符:&(與)、|(或)和(非)。邏輯運算的運算法則: 在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。 設參與邏輯運算的是兩個標量a和b,那么, a&b a,b全為非零時,運算結果為1,否則為0。 a|b a,b中只要有一個非零,運算結果為1。 a 當a是零時,運算結果為1;當a非零時,運算結果為0。例子:例子:5&2 5&0 2|0 0在算術、關系、邏輯運算中,算術運算優(yōu)先級最高,邏輯運算優(yōu)先在算術、關系、邏輯運算中,算術運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。級最低。例子:例

11、子:3+0&2who 列出在列出在MATLAB工作空間中已有的變量工作空間中已有的變量whos 列出駐留變量的同時列出駐留變量的同時, ,還給出維數(shù)及性質還給出維數(shù)及性質clear 刪除內(nèi)存中的變量(數(shù)據(jù))刪除內(nèi)存中的變量(數(shù)據(jù))clc 刪除命令窗口的內(nèi)容(已使用過的命令)刪除命令窗口的內(nèi)容(已使用過的命令)home 光標移到命令窗口的左上角光標移到命令窗口的左上角clf 刪除圖形窗口的內(nèi)容刪除圖形窗口的內(nèi)容 調出剛才使用過的命令調出剛才使用過的命令quit 退出退出MATLABMATLAB 常用函數(shù)介紹常用函數(shù)介紹MATLAB命令窗口的部分通用命令命令窗口的部分通用命令size(A,

12、1)size(A,2)length(A)flipud(A)fliplr(A)diag(A)diag(v)返回一個二元向量返回一個二元向量,第一個元素為第一個元素為A的行數(shù)的行數(shù),第二個元素為第二個元素為A的列數(shù)的列數(shù)返回返回A的行數(shù)的行數(shù)返回返回A的列數(shù)的列數(shù)返回返回max(size(A)矩陣作上下翻轉矩陣作上下翻轉矩陣作左右翻轉矩陣作左右翻轉提取提取A的對角元素的對角元素, ,返回列向量返回列向量以向量以向量v作對角元素創(chuàng)建對角矩陣作對角元素創(chuàng)建對角矩陣size(A)數(shù)組操作函數(shù)數(shù)組操作函數(shù)最大值最大值max、最小值、最小值min、求和、求和sum和求平均值和求平均值mean等等函數(shù)函數(shù),一

13、般作用于向量一般作用于向量,作用于矩陣時作用于矩陣時,是函數(shù)作用于矩陣是函數(shù)作用于矩陣相應列向量的結果相應列向量的結果,返回行向量返回行向量數(shù)值類型是:雙精度數(shù)值類型是:雙精度虛數(shù)和復數(shù)都當作雙精度處理虛數(shù)和復數(shù)都當作雙精度處理整數(shù):數(shù)字表示整數(shù):數(shù)字表示小數(shù)用數(shù)字和小數(shù)點表示小數(shù)用數(shù)字和小數(shù)點表示浮點數(shù)用數(shù)值、小數(shù)點和浮點數(shù)用數(shù)值、小數(shù)點和e表示。表示。e表示底數(shù)表示底數(shù)10格式顯示格式顯示短格式顯示命令(短格式顯示命令(format short) 長格式顯示命令(長格式顯示命令(format long)計算結果顯示方式計算結果顯示方式MATLAB 標點符號標點符號、矩陣元素運算、矩陣元素運

14、算空格:輸入量之間的分隔符、數(shù)組元素分隔符空格:輸入量之間的分隔符、數(shù)組元素分隔符應用例子應用例子傳說古印度術士為國王發(fā)明了國際象棋(傳說古印度術士為國王發(fā)明了國際象棋(64格),國王問他想要什格),國王問他想要什么報酬,術士說:請在第一個放一粒米,在第二格放么報酬,術士說:請在第一個放一粒米,在第二格放2粒米,以后粒米,以后每格上放的米的個數(shù)是前一格的一倍。把每格上放的米的個數(shù)是前一格的一倍。把64格子放滿就行了。國王格子放滿就行了。國王滿口答應了這個要求。滿口答應了這個要求。問題:問題:1 國王需要給多少粒米?國王需要給多少粒米?問題:問題:2 假設假設1粒米的長寬高都是粒米的長寬高都是1

15、mm,這些米需要多大的倉庫才,這些米需要多大的倉庫才能裝的下這些米能裝的下這些米(假定倉庫是立方體的,以(假定倉庫是立方體的,以m3為單位)為單位) ?m=0:63 %指數(shù)指數(shù)n=sum(2.m) %總米粒數(shù)總米粒數(shù)(n*1e-9)(1/3) %倉庫的長寬高倉庫的長寬高二二MATLAB繪圖繪圖 了解MATLAB的繪圖功能 掌握二維圖形和三維圖形的繪制方法 能夠進行常用的數(shù)據(jù)可視化處理21主要內(nèi)容 2.1 二維圖形 2.2 圖形修飾與控制 2.3 三維圖形222.1 二維圖形二維圖形plot函數(shù)繪制二維曲線,常用格式有: plot(x):缺省自變量的繪圖格式,x可為向量或矩陣。 plot(x,

16、y):基本格式,x和y可為向量或矩陣。 plot(x1, y1, x2, y2,):多條曲線繪圖格式,在同一坐標系中繪制多個圖形。 plot(x, y, s):開關格式,開關量字符串s設定了圖形曲線的顏色、線型及標示符號。23圖形顏色、標記和線形參數(shù)表色彩字符色彩字符所定顏色所定顏色線型字符線型字符線型格式線型格式標記符號標記符號數(shù)據(jù)點形式數(shù)據(jù)點形式標記符號標記符號數(shù)據(jù)點形式數(shù)據(jù)點形式y(tǒng)黃黃-實線(默認)實線(默認).點點右三角形右三角形24figure, plot(x1, y1,k: x2, y2,r-.)例 x=3 5 7 6 12 24 15 33 6 9 7 2; plot(x)%繪制

17、以序號為橫坐標,元素值為縱坐標的曲線繪制以序號為橫坐標,元素值為縱坐標的曲線 x=0:pi/10:2*pi; y=sin(x); plot(x,y)%繪制以繪制以x為橫坐標,為橫坐標,y為縱坐標的曲線為縱坐標的曲線0246810120510152025303501234567-1-0.8-0.6-0.4-0.200.20.40.60.8125例 x=linspace(0,7); y1=sin(2*x); y2=sin(x.2); y3=(sin(x).2;%曲線曲線1:紅色實線,:紅色實線,+號顯示數(shù)據(jù)點號顯示數(shù)據(jù)點%曲線曲線2:黑色點線,:黑色點線,*號顯示數(shù)據(jù)點號顯示數(shù)據(jù)點%曲線曲線3:藍

18、色虛線,上三角形顯示數(shù)據(jù)點:藍色虛線,上三角形顯示數(shù)據(jù)點 figure, plot(x, y1, r-+, x, y2, k*:, x, y3, b-)01234567-1-0.8-0.6-0.4-0.200.20.40.60.81262.2 圖形修飾與控制圖形修飾與控制 title 給圖形加標題給圖形加標題 xlable 給給x軸加標注軸加標注 ylable 給給y軸加標注軸加標注 text 在圖形指定的任意位置加標注在圖形指定的任意位置加標注 gtext 利用鼠標將標注加到圖形任意位置利用鼠標將標注加到圖形任意位置 grid on 打開坐標網(wǎng)格線打開坐標網(wǎng)格線 grid off關閉坐標網(wǎng)格

19、線關閉坐標網(wǎng)格線 legend 添加圖例添加圖例 axis 控制坐標軸刻度控制坐標軸刻度27例:繪制正弦和余弦曲線,并加入網(wǎng)格和標注cleart=0:0.1:10;y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3; 0.7;s=sin(t);cos(t);text(x, y, s);指定位置加標注指定位置加標注title(正弦和余弦曲線正弦和余弦曲線); 標題標題legend(正弦正弦,余弦余弦)%添加圖例注解添加圖例注解xlabel(時間時間)x坐標名坐標名ylabel(正弦正弦&余弦余弦)y坐標名坐標名g

20、rid on%添加網(wǎng)格添加網(wǎng)格axis square%將圖形設置為正方形將圖形設置為正方形0246810-1-0.8-0.6-0.4-0.200.20.40.60.81sin(t)cos(t)正 弦 和 余 弦 曲 線時 間正弦&余弦正 弦余 弦28MATLAB的圖形編輯窗口29采用采用hold函數(shù)對圖形進行比較顯示函數(shù)對圖形進行比較顯示 cleart=0:pi/10:2*pi;y1=sin(t);y2=cos(t);y3= sin(t)-cos(t);figure;plot(t,y1);hold on; %后續(xù)圖形疊加顯示plot(t,y2);plot(t,y3);01234567-

21、1.5-1-0.500.511.530采用圖形窗口分割方法進行比較顯示采用圖形窗口分割方法進行比較顯示clear; close all; clc;t=0:pi/10:2*pi; y1=sin(t); y2=cos(t); y3=cos(t+pi/2); y4=cos(t+pi); figure;%將圖形窗口分割成兩行兩列,要畫的圖形為第1行第1列subplot(2,2,1); plot(t,y1);legend(Line 1);title(fig.a)%將圖形窗口分割成兩行兩列,要畫的圖形為第1行第2列subplot(2,2,2); plot(t,y2);%將圖形窗口分割成兩行兩列,要畫的圖形

22、為第2行第1列subplot(2,2,3); plot(t,y3);%將圖形窗口分割成兩行兩列,要畫的圖形為第2行第2列subplot(2,2,4); plot(t,y4);02468-1-0.500.5102468-1-0.500.5102468-1-0.500.5102468-1-0.500.5131字體、線條、坐標軸粗細設置字體、線條、坐標軸粗細設置clear; close all; clc;x=1:10;y = x.2;z = x.3;figure(1)plot(x,y,r-,Linewidth,2)hold on;plot(x,z,k-,Linewidth,2);xlabel(x,F

23、ontSize,16)ylabel(y,FontSize,16)legend(y=x2,y=x3,FontSize,16)set(gca,FontSize,16); set(gca,Linewidth,2); 32024681002004006008001000 xy y=x2y=x31234567891001002003004005006007008009001000 xy y=x2y=x3對數(shù)坐標對數(shù)坐標clear; close all; clc;x=1:10;y = x.2;figure(1)semilogx(x,y,r-,Linewidth,2)xlabel(x,FontSize,16

24、)ylabel(y,FontSize,16)legend(y=x2,FontSize,16)figure(2)semilogy(x,y,r-,Linewidth,2)xlabel(x,FontSize,16)ylabel(y,FontSize,16)legend(y=x2,FontSize,16)figure(3)loglog(x,y,r-,Linewidth,2)331001010102030405060708090100 xy y=x212345678910100101102xy y=x2練習%曲線的畫法(請設置斷點執(zhí)行指令)a=0:10:360 %角度向量的度數(shù)x=a*pi/180 %角

25、度向量的弧度數(shù)figure %創(chuàng)建圖形窗口plot(x,sin(x),x,cos(x) %畫正弦和余弦曲線(橫坐標刻度是弧度數(shù))plot(a,sin(x),a,cos(x) %畫正弦和余弦曲線(橫坐標刻度是度數(shù))plot(a,sin(a),a,cos(a) %畫不正確的曲線(系統(tǒng)將度數(shù)當作弧度數(shù))plot(x,sin(x),r,x,cos(x),k) %用紅色畫正弦線,用黑色畫余弦線plot(x,sin(x),.,x,cos(x),o) %用點畫正弦線,用圈畫余弦線(曲線斷裂)plot(x,sin(x),-.,x,cos(x),-) %用點虛線畫正弦線,用長虛線畫余弦線plot(x,sin(x

26、),.-,x,cos(x),-o) %正弦線用實線加點畫,余弦線虛線和圈畫練習h=plot(x,sin(x),x,cos(x) %畫曲線時獲取對象的句柄get(h(1) %獲取第一條線的屬性get(h(2) %獲取第二條線的屬性plot(sin(x),x,cos(x),x) %畫反正弦和反余弦函數(shù)曲線plot(a,sin(x);cos(x) %用矩陣畫兩條曲線plot(x,imag(exp(i*x),x,exp(i*x) %用復數(shù)畫正弦和余弦曲線plot(exp(i*x) %用復數(shù)畫圓,呈現(xiàn)橢圓plot(real(exp(i*x),imag(exp(i*x) %效果同上figure, plot

27、(x,sin(x),r,x,cos(x),b,LineWidth,2) %分別用紅色和藍色畫曲線, 2磅粗線axis equal %使坐標間隔相等,呈現(xiàn)圓2.3 三維圖形三維圖形 三維曲線圖 plot3函數(shù)可以繪制三維曲線: plot3(x1, y1, z1, s1, x2, y2, z2, s2) 三維網(wǎng)格圖 mesh函數(shù)為數(shù)據(jù)點繪制網(wǎng)格線:mesh(z) z為nm的矩陣,x與y坐標為元素的下標位置mesh(x, y, z) x, y, z分別為三維空間的坐標位置 三維曲面圖 三維曲面的繪圖是由surf函數(shù)完成的,用法和mesh類似。36例:函數(shù)plot3繪制的三維曲線圖 cleart=0:

28、pi/50:10*pi;plot3(t,sin(t),cos(t),r:)grid on010203040-1-0.500.51-1-0.500.5137例:分別用mesh函數(shù)和surf函數(shù)繪制高斯矩陣z=peaks(40);mesh(z);% 網(wǎng)格線 figure%產(chǎn)生新的圖形窗口surf(z); %著色表面圖38觀察點clearz=peaks(40);subplot(2,2,1); mesh(z);%繪制繪制子圖子圖1(默認視點)(默認視點)subplot(2,2,2);mesh(z);view(-15,60); %指定子圖指定子圖2的視點的視點subplot(2,2,3);mesh(z)

29、;view(-90,0); %指定子圖指定子圖3的視點的視點subplot(2,2,4);mesh(z);view(-7,-10); %指定子圖指定子圖4的視點的視點010203040010203040-10-505100510152025303540010203040-100100510152025303540-8-6-4-20246810051015202530354002040-8-6-4-2024681039三三 MATLAB數(shù)值運算數(shù)值運算 掌握矩陣、向量、數(shù)組和多項式的構造和運算方法 能夠使用常用的幾種函數(shù)進行一般的數(shù)值問題求解40主要內(nèi)容 3.1 矩陣 3.2 向量 3.3 數(shù)組

30、 3.4 多項式 413.1 矩陣MATLAB = matrix(矩陣)+ laboratory(實驗室)423.1.1 矩陣的構造 通過直接輸入矩陣的元素構造矩陣: 用中括號用中括號 把所有矩陣元素括起來把所有矩陣元素括起來 同一行的不同數(shù)據(jù)元素之間用空格或逗號間隔同一行的不同數(shù)據(jù)元素之間用空格或逗號間隔 用分號(用分號(;)指定一行結束)指定一行結束 數(shù)據(jù)元素可以是表達式,系統(tǒng)將自動計算結果數(shù)據(jù)元素可以是表達式,系統(tǒng)將自動計算結果 可分成幾行進行輸入,用回車符代替分號可分成幾行進行輸入,用回車符代替分號43A=A= A = A; 1 2 3 4; 5 6 7 8 A = A; 1 2 3

31、4; 5 6 7 8 A= A; 9 10 11 12; 13 14 15 16 A= A; 9 10 11 12; 13 14 15 16A=1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16A=1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16A=A=1, 2, 3, 4; 5, 6, 7, 8; 9 10 11 12; 13 14 15 161, 2, 3, 4; 5, 6, 7, 8; 9 10 11 12; 13 14 15 16 A=A=1, 1, sqrtsqrt(4), 3, 4; 5, 2+4, 7, 8; 9

32、10 11 12; 13 14 15 (4), 3, 4; 5, 2+4, 7, 8; 9 10 11 12; 13 14 15 4242 3.1.2 矩陣下標與子矩陣提取矩陣下標與子矩陣提取 A(m, n)表示取A矩陣第m行、第n列的元素 A(:, n)A矩陣的第n列全部元素 A(m, :)A矩陣第i行的全部元素 A(m1:m2, n1:n2)從第m1行到第m2行,第n1列到 n2列的所有元素 子矩陣 A(m:end, n1:n2)從第m行到最末行, 第n1列到n2列的子塊 A(:)把矩陣A從新排成一個長列矢量,該矢量的元素按矩陣的列進行排列44A(i:i+m,:) ;A(:,k:k+m);

33、A(i:i+m,k:k+m) 特殊矩陣特殊矩陣1通用的特殊矩陣常用的產(chǎn)生通用特殊矩陣的函數(shù)有:zeros:產(chǎn)生全0矩陣(零矩陣)。ones:產(chǎn)生全1矩陣(幺矩陣)。eye:產(chǎn)生單位矩陣。rand:產(chǎn)生01間均勻分布的隨機矩陣。randn:產(chǎn)生均值為0,方差為1的標準正態(tài)分布隨機矩陣。例子:輸入矩陣例子:輸入矩陣A、B的值的值A=1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 1646例子例子例3-2 分別建立33、32和與矩陣A同樣大小的零矩陣。(1) 建立一個33零矩陣。zeros(3) (2) 建立一個32零矩陣。zeros(3,2) (3) 設A為23矩陣,

34、則可以用zeros(size(A)建立一個與矩陣A同樣大小零矩陣。A=1 2 3;4 5 6; %產(chǎn)生一個23階矩陣Azeros(size(A) %產(chǎn)生一個與矩陣A同樣大小的零矩陣例子(續(xù))例子(續(xù))例3-3 建立隨機矩陣:(1) 在區(qū)間20,50內(nèi)均勻分布的5階隨機矩陣。(2) 均值為0.6、方差為0.1的5階正態(tài)分布隨機矩陣。命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函數(shù)還有reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成mn的二維矩陣。例子(續(xù))例子(續(xù))2用于專門學科的特殊矩陣 (1) 魔

35、方矩陣魔方矩陣有一個有趣的性質,其每行、每列及兩條對角線上的元素和都相等。對于n階魔方陣,其元素由1,2,3,n2共n2個整數(shù)組成。MATLAB提供了求魔方矩陣的函數(shù)magic(n),其功能是生成一個n階魔方陣。magic(3)例子(續(xù))例子(續(xù))例 將101125等25個數(shù)填入一個5行5列的表格中,使其每行每列及對角線的和均為565。 M=100+magic(5)例:例: 修改矩陣A中元素的數(shù)值A=1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16;A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0);則矩陣變?yōu)椋篈 = 0

36、2 3 4 5 7 7 8 9 10 11 12 13 14 15 1513.1.3 矩陣的算術運算矩陣的算術運算 1矩陣的加減運算:(加)、(減) 2矩陣乘法:*(乘) 3矩陣除法:/ (右除)、 (左除) 4矩陣的乘方:(乘方) 5矩陣轉置: (轉置運算符)523.1.3 矩陣的算術運算(續(xù))矩陣的算術運算(續(xù)) (1) 矩陣加減運算 假定有兩個矩陣A和B,則可以由A+B和A-B實現(xiàn)矩陣的加減運算。運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運算,A和B矩陣的相應元素相加減。如果A與B的維數(shù)不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。3.1.3 矩陣的算

37、術運算(續(xù))矩陣的算術運算(續(xù)) (2) 矩陣乘法 假定有兩個矩陣A和B,若A為mn矩陣,B為np矩陣,則C=A*B為mp矩陣。3.1.3 矩陣的算術運算(續(xù))矩陣的算術運算(續(xù)) (3) 矩陣除法在MATLAB中,有兩種矩陣除法運算:和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則AB和B/A運算可以實現(xiàn)。AB等效于A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)。對于含有標量的運算,兩種除法運算的結果相同,如3/4和43有相同的值,都等于0.75。又如,設a=10.5,25,則a/5=5a=2.1000 5.0000。對于矩陣來說,左

38、除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關系。對于矩陣運算,一般ABB/A。3.1.3 矩陣的算術運算(續(xù))矩陣的算術運算(續(xù)) (4) 矩陣的乘方 一個矩陣的乘方運算可以表示成Ax,要求A為方陣,x為標量。點運算點運算 在在MATLAB中,有一種特殊的運算,因為其運算符是中,有一種特殊的運算,因為其運算符是在有關算術運算符前面加點,所以叫點運算。點運算符在有關算術運算符前面加點,所以叫點運算。點運算符有有.*、./、.和和.。兩矩陣進行點運算是指它們的對應元素。兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數(shù)相同。進行相關運算,要求兩矩陣的維參數(shù)相同。 A=magic(

39、3) B=A*A C= A.*A3.1.4 矩陣的關系運算矩陣的關系運算 關系運算符:(小于小于)、(大于大于)=(大于或等于大于或等于)、=(等于等于)、=(不等于不等于)。 關系運算符的運算法則: 關系運算將對兩個矩陣的對應元素進行比較關系運算將對兩個矩陣的對應元素進行比較。 573.1.4 矩陣的關系運算(續(xù))矩陣的關系運算(續(xù)) 關系運算符的運算法則為: (1) 當兩個比較量是標量時,直接比較兩數(shù)的大小。若關系成立,關系表達式結果為1,否則為0。 (2) 當參與比較的量是兩個維數(shù)相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關系運算規(guī)則逐個進行,并給出元素比較結果。最終的關系運算的結

40、果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。3.1.4 矩陣的關系運算(續(xù))矩陣的關系運算(續(xù)) (3) 當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關系運算規(guī)則逐個比較,并給出元素比較結果。最終的關系運算的結果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。3.1.4 矩陣的關系運算(續(xù))矩陣的關系運算(續(xù))例 產(chǎn)生5階隨機方陣A,其元素為10,90區(qū)間的隨機整數(shù),然后判斷A的元素是否能被3整除。 (1) 生成5階隨機方陣A。A=fix(90-10+1)*rand(5)+10)(2) 判斷A的元素是否可以被3整除。 P=rem(A,3)=0其中,r

41、em(A,3)是矩陣A的每個元素除以3的余數(shù)矩陣此時,0被擴展為與A同維數(shù)的零矩陣,P是進行等于(=)比較的結果矩陣。3.1.5 矩陣的邏輯運算矩陣的邏輯運算 必須是兩個同維矩陣或其中一個矩陣為標量才能進行 MATLAB提供了一些邏輯函數(shù)邏邏 輯輯 函函 數(shù)數(shù)功功 能能all如果所有的元素都是非零值,返回1;否則,返回0。any如果有一個元素為非零值,那么返回1;否則,返回0isempty判斷是否空矩陣isequal判斷兩矩陣是否相同isreal判斷是否是實矩陣find返回一個由非零元素的下標組成的向量613.1.5 矩陣的邏輯運算矩陣的邏輯運算MATLAB提供了3種邏輯運算符:&(與

42、)、|(或)和(非)。邏輯運算的運算法則為: (1) 在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。 (2) 設參與邏輯運算的是兩個標量a和b,那么, a&b a,b全為非零時,運算結果為1,否則為0。 a|b a,b中只要有一個非零,運算結果為1。 a 當a是零時,運算結果為1;當a非零時,運算結果為0。3.1.5 矩陣的邏輯運算(續(xù))矩陣的邏輯運算(續(xù))若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規(guī)則逐個進行。最終運算結果是一個與原矩陣同維的矩陣,其元素由1或0組成。若參與邏輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元

43、素之間按標量規(guī)則逐個進行。最終運算結果是一個與矩陣同維的矩陣,其元素由1或0組成。邏輯非是單目運算符,也服從矩陣運算規(guī)則。3.1.5 矩陣的邏輯運算(續(xù))矩陣的邏輯運算(續(xù))例 建立矩陣A,然后找出大于4的元素的位置。(1) 建立矩陣A。A=4,-65,-54,0,6;56,0,67,-45,0 (2) 找出大于4的元素的位置。find(A4)3.1.6 矩陣函數(shù)矩陣函數(shù)函函 數(shù)數(shù)功功 能能det計算矩陣所對應的行列式的值diag抽取矩陣對角線元素eig求特征值和特征向量inv求矩陣的逆陣lu三角分解Poly求特征多項式Rank求矩陣的秩Svd奇異值分解651求矩陣的行列式的值 X=1 2 3

44、 0; 5 6 0 8; 9 0 11 12; 0 14 15 16;det(X)ans =-5464662求矩陣的秩 X=1, 2, 3; 2, 3 -5; 4 7 1; rank(X)ans = 2673求逆矩陣 X=1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16; Y=inv(X)Y = 0.2299 0.0908 0.0351 -0.0717 0.1940 0.0798 -0.0659 0.0095 0.1274 -0.0835 0.0322 0.0176 -0.2892 0.0084 0.0275 0.0377Y*X%矩陣與其逆陣相乘結果是單位矩陣an

45、s = 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 X*Y%矩陣的逆陣是唯一的ans = 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000684求特征值和特征向量 X=-2 1 1;0 2 0;-4 1 3; V D=eig(X)V= -0.7071 -0.2425 0.3015 0 0 0.9045 -0.7071 -0.9701 0.3015D= -1 0 0 0 2 0 0 0 2695矩陣分解 A=2 -1 3;1 2 1;2 4 3; L, U=lu(A) %三角分解 L

46、 = 1.0000 0 0 0.5000 0.5000 1.0000 1.0000 1.0000 0U = 2.0000 -1.0000 3.0000 0 5.0000 0 0 0 -0.5000706求解線形方程組713.2 向量向量 向量是矢量運算的基礎 行向量 列向量 723.2.1 向量的構造向量的構造 1逐個輸入a=1 3 9 10 15 16%采用空格和逗號分隔構成行向量b=1; 3; 9; 10; 15; 16 %采用分號隔開構成列向量 2利用冒號表達式“:”生成向量x=1:2:9%初值=1,終值=9,步長=2z=1:5%初值=1,終值=5,默認步長=1 3利用函數(shù)生成向量 x=

47、linspace(1, 9, 5)%初值=1,終值=9,元素數(shù)目=5733.2.2 向量的運算向量的運算 1點積:dot函數(shù) 2叉積:cross函數(shù) 例 a = 1 2 3; b = 4 5 6; c = dot(a, b) d = cross(a, b) c =32d = -3 6 -3 74 I love MATLAB.在在MATLAB中,字符串是用單撇號括起來的字符序列。中,字符串是用單撇號括起來的字符序列。MATLAB將字符串當作一個行向量,每個元素對應一個將字符串當作一個行向量,每個元素對應一個字符,其標識方法和數(shù)值向量相同。也可以建立多行字符字符,其標識方法和數(shù)值向量相同。也可以建

48、立多行字符串矩陣。串矩陣。字符串是以字符串是以ASCII碼形式存儲的。碼形式存儲的。abs和和double函數(shù)都可函數(shù)都可以用來獲取字符串矩陣所對應的以用來獲取字符串矩陣所對應的ASCII碼數(shù)值矩陣。相反,碼數(shù)值矩陣。相反,char函數(shù)可以把函數(shù)可以把ASCII碼矩陣轉換為字符串矩陣。碼矩陣轉換為字符串矩陣。3.2.3 字符串向量字符串向量例2-13 建立一個字符串向量,然后對該向量做如下處理:(1) 取第15個字符組成的子字符串。(2) 將字符串倒過來重新排列。(3) 將字符串中的小寫字母變成相應的大寫字母,其余字符不變。(4) 統(tǒng)計字符串中小寫字母的個數(shù)。3.2.3 字符串向量(續(xù))字符串

49、向量(續(xù))命令如下:ch=ABc123d4e56Fg9;subch=ch(1:5) %取子字符串revch=ch(end:-1:1) %將字符串倒排k=find(ch=a&ch x=1 2 3; 4 5 6; 7 8 9; y=9 8 7; 6 5 4; 3 2 1; x+y%數(shù)組和矩陣的加法規(guī)則相同ans = 10 10 10 10 10 10 10 10 10 x.*y%數(shù)組乘法:對應元素相乘ans = 9 16 21 24 25 24 21 16 9 x*y%矩陣乘法:按照線性代數(shù)理論進行ans = 30 24 18 84 69 54 138 114 9080多維數(shù)組維間處理的函

50、數(shù)多維數(shù)組維間處理的函數(shù) 1reshape 2size 3ndims 4cat 5permute 6ipermute 7shiftdim 8squeeze 813.4 多項式多項式多項式是形如P(x) = a0 xn+a1xn-1+an-1x+an的式子。在MATLAB中,多項式用行向量表示:P= a0 a1 an-1 an823.4.1 多項式的生成與表達多項式的生成與表達例:已知向量A=1 34 80 0 0,用此向量構造一多項式并顯示結果。PA=poly(A) % poly convert roots to a polynomial.ans = 1 113 2606 -2720 0 0

51、PAX=poly2str(A,X)PAX = X4 - 34 X3 - 80 X2PAX=poly2str(PA,X)PAX = X5 + 113 X4 + 2606 X3 - 2720 X2833.4.2 多項式的運算多項式的運算 1. 多項式的算術運算 參加加減運算的多項式應該具有相同的階次。 多項式乘法采用conv函數(shù),除法由函數(shù)deconv完成 2. 求根 求多項式的根采用roots函數(shù):roots(P) 3. 求值 函數(shù)polyval可以將某個特定數(shù)值代入多項式: polyval (P,X) 函數(shù)polyvalm可以求出當多項式中的未知數(shù)為方陣時的值。 4. 求導 使用polyder

52、函數(shù)對多項式求導:polyder(P) 。84上機指導3.5工作空間與內(nèi)存變量 3.5.1變量的查看 3.5.2變量的文件保存與獲取 85應用舉例86應用舉例87應用舉例例 將表達式(x-4)(x+5)(x2-6x+9)展開為多項式形式,并求其對應的一元n次方程的根。 p=conv(1 -4,conv(1 5,1 -6 9) px=poly2str(p,x)x=roots(p)88四四 腳本編程基礎腳本編程基礎 對于簡單問題,使用直接輸入命令簡單有效;對稍復雜和多次重復的應用,直接輸入命令比較麻煩。MATLAB提供了邏輯解決方案,它允許用戶把多個命令放在一個簡單的文本文件中,如同在MATLAB

53、中鍵入命令一般,這種文件稱為腳本文件,由于腳本文件以m為擴展名,它常稱為M文件。腳本文件為文本形式的,對跨平臺處理十分有利。 使用腳本文件,可以把命令保存在磁盤上,便于以后的訪問;同時對使用大的數(shù)組也帶來的方便;增加注釋可以為腳本中的命令作文擋以免以后忘記。894.1 流程控制流程控制 為了便于應用,MATLAB提供了一些流程控制的命令。這些命令對腳本編寫帶來了一些方便,但是需要注意的是,盡量不要使用這些流程控制命令,尤其是循環(huán)控制命令。904.1.1 for 循環(huán)循環(huán) for循環(huán)允許一組命令以固定的次數(shù)重復,例如for i = 1:5; for j = 1:4; A(i,j) = 1/(i+

54、j-1); endend91For循環(huán)應當注意的一些方面1. for循環(huán)不能使用內(nèi)部重新賦值循環(huán)變量而終止;2. for循環(huán)內(nèi)部接受任何有效的MATLAB數(shù)組;3. for循環(huán)可以嵌套;4. 只要有矩陣形式可以解決的問題,不要使用for循環(huán)。使用for循環(huán)的算法執(zhí)行很慢,一個好的MATLAB算法不應當出現(xiàn)循環(huán)語句。Tic/toc5. 循環(huán)可以使用break跳出,但只跳出所在的循環(huán),不跳出整個嵌套結構。924.1.2 while 循環(huán)循環(huán) 與for循環(huán)以固定的次數(shù)執(zhí)行一組指令,while循環(huán)以不定的次數(shù)執(zhí)行一組指令。While循環(huán)的一般形式為: while expression commands

55、 end 只要表達式expression里的所有元素為真,就執(zhí)行命令串commands。通常表達式求值給一個標量值,單數(shù)組值也同樣有效。934.1.3 if-else-end 結構結構 很多情況下,命令的序列需根據(jù)關系的檢驗有條件的執(zhí)行,它由if-else-end結構提供。它的結構如下: if expression1 commands1 elseif expression2 commands2 elseif else commands end944.1.3 if-else-end 結構(續(xù))結構(續(xù)) 在執(zhí)行過程中,MATLAB依次檢查各個表達式,只執(zhí)行第一個表達式為真的命令串,接下來的關系表

56、達式不檢驗,跳過其余的if-else-end結構,而且,最后的else命令可有可無。954.1.4 try-catch 結構結構 可以進行錯誤的處理,提高計算的可靠性 try 可能出錯的語句 catch 錯誤處理 end964.2 函數(shù)函數(shù) 把一個比較大的任務分解為多個比較小的任務,它們之間通過調用實現(xiàn)參數(shù)傳遞,小任務可以是函數(shù)。974.2.1 函數(shù)調用函數(shù)調用 常見的函數(shù)調用形式為: out1,out2,=function(in1,in2,) 一個函數(shù)可以嵌套,也可以調用其它的函數(shù),甚至調用自己(也就是遞歸調用)。 函數(shù)文件,函數(shù)名稱和文件名必須相同。 需要注意函數(shù)文件的放置位置,一般自己的

57、函數(shù)文件放在當前目錄;如果對一個專題有了足夠多的函數(shù),可以生成一個工具箱,放在一個固定的目錄下,并在MATLAB中加入這個目錄路徑即可。984.2.1 函數(shù)調用(續(xù))函數(shù)調用(續(xù)) 使用函數(shù)可以加快計算速度。MATLAB首次執(zhí)行一個函數(shù)時,它將打開的文件編譯為存儲器內(nèi)部形式,加速了執(zhí)行速度。普通的m文件不被編譯,在每次編譯時,文件將逐行解釋執(zhí)行。994.2.2 參數(shù)傳遞參數(shù)傳遞 在MATLAB中,參數(shù)具有自己的專有工作空間。函數(shù)中的參數(shù)和命令行參數(shù)不在一個空間中,它們的唯一聯(lián)系為函數(shù)的輸入輸出變量。輸入?yún)?shù)在函數(shù)中是可讀的,但任何改動不會傳遞回上一級空間(除非它同時也是輸出變量)。 使用glo

58、bal命令可以將變量說明為全局的,則在函數(shù)、命令行等都可以共享這些變量。在實際應用中,應當盡量避免使用全局變量。1004.2.3 函數(shù)注意事項函數(shù)注意事項 函數(shù)可以按少于函數(shù)M 文件中所規(guī)定的輸入和輸出變量進行調用,但不能用多于函數(shù)M 文件中所規(guī)定的輸入和輸出變量數(shù)目。如果輸入和輸出變量數(shù)目多于函數(shù)M 文件中function 語句一開始所規(guī)定的數(shù)目,則調用時自動返回一個錯誤。1014.2.3 函數(shù)注意事項(續(xù))函數(shù)注意事項(續(xù)) 函數(shù)有它們自己的專用工作空間,它與MATLAB 的工作空間分開。函數(shù)內(nèi)變量與MATLAB 工作空間之間唯一的聯(lián)系是函數(shù)的輸入和輸出變量。如果函數(shù)任一輸入變量值發(fā)生變化

59、,其變化僅在函數(shù)內(nèi)出現(xiàn),不影響MATLAB 工作空間的變量。函數(shù)內(nèi)所創(chuàng)建的變量只駐留在函數(shù)的工作空間,而且只在函數(shù)執(zhí)行期間臨時存在,以后就消失。因此,從一個調用到下一個調用,在函數(shù)工作空間變量存儲信息是不可能的。 1024.2.3 函數(shù)注意事項(續(xù))函數(shù)注意事項(續(xù)) 當調用一個函數(shù)時,輸入變量不會拷貝到函數(shù)的工作空間,但使它們的值在函數(shù)內(nèi)可讀。然而,改變輸入變量內(nèi)的任何值,那么數(shù)組就拷貝到函數(shù)工作空間。進而,按缺省,如果輸出變量與輸入變量相同,例如,函數(shù)x=fun(x, y, z) 中的x ,那么就將它拷貝到函數(shù)的工作空間。因此,為了節(jié)約存儲和增加速度,最好是從大數(shù)組中抽取元素,然后對它們作

60、修正,而不是使整個數(shù)組拷貝到函數(shù)的工作空間。1034.2.3 函數(shù)注意事項(續(xù))函數(shù)注意事項(續(xù)) 如果變量說明是全局的,函數(shù)可以與其它函數(shù)、MATLAB 工作空間和遞歸調用本身共享變量。為了在函數(shù)內(nèi)或MATLAB 工作空間中訪問全局變量,在每一個所希望的工作空間,變量必須說明是全局的。 實際編程中,無論什么時候應盡量避免使用全局變量。要是用了全局變量,建議全局變量名要長,它包含所有的大寫字母,并有選擇地以首次出現(xiàn)的M 文件的名字開頭。如果遵循建議,則在全局變量之間不必要的互作用減至最小。 1044.2.3 函數(shù)注意事項(續(xù))函數(shù)注意事項(續(xù)) MATLAB 以搜尋腳本文件的同樣方式搜尋函數(shù)M 文件。例如,輸入 cow ,MATLAB 首先認為cow 是一個變量。

溫馨提示

  • 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

提交評論