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

下載本文檔

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

文檔簡介

1、MATLAB編程入門編程入門主要內(nèi)容主要內(nèi)容使用簡介使用簡介命令行編輯入門命令行編輯入門常用函數(shù)常用函數(shù)畫圖介紹畫圖介紹MATLAB數(shù)值運算數(shù)值運算編程基礎(chǔ)編程基礎(chǔ)符合運算符合運算MATLAB 使用簡介使用簡介是一種解釋式語言是一種解釋式語言. . 簡單易學(xué)、代碼短小高效簡單易學(xué)、代碼短小高效、計算功能強大、圖形繪制和處理容易、可擴、計算功能強大、圖形繪制和處理容易、可擴展性強展性強. .矩陣的數(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的縮寫的縮寫鼠標(biāo)雙擊鼠標(biāo)雙擊Windows桌面上圖標(biāo)桌面上圖標(biāo)在在Windows“開始開始”菜單的菜單的 “程序程序”選項中選擇選項中選擇 “ MATLAB”退出退出MATLAB命令窗口鍵入命令窗口鍵入“quit”或或 “Ctrl+Q”鼠標(biāo)選擇菜單鼠標(biāo)選擇菜單 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、簡介使用簡介命令行編輯入門命令行編輯入門- 命令行基礎(chǔ)命令行基礎(chǔ) 簡單運算簡單運算例例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預(yù)定義的變量或函數(shù)名重復(fù)。預(yù)

6、定義的變量或函數(shù)名重復(fù)。比如:高度:比如:高度:heightheight密度:密度:density density 或者或者 rho rho但長度最好不用但長度最好不用lengthlength,因為,因為lengthlength被被MATLABMATLAB預(yù)定義了,用于計算預(yù)定義了,用于計算向量或向量或矩陣矩陣的長度。如果自己用了的長度。如果自己用了lengthlength,MATLABMATLAB預(yù)定義就會失效。預(yù)定義就會失效。命令行編輯入門命令行編輯入門-MATLAB預(yù)定義變量預(yù)定義變量ans 用于結(jié)果的缺省變量名用于結(jié)果的缺省變量名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)共軛復(fù)數(shù)共軛復(fù)數(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)復(fù)數(shù)復(fù)數(shù)z的相角的相角real(z)復(fù)數(shù)復(fù)數(shù)z的實部的實部imag(z)復(fù)數(shù)復(fù)數(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表示。 設(shè)參與邏輯運算的是兩個標(biāo)量a和b,那么, a&b a,b全為非零時,運算結(jié)果為1,否則為0。 a|b a,b中只要有一個非零,運算結(jié)果為1。 a 當(dāng)a是零時,運算結(jié)果為1;當(dāng)a非零時,運算結(jié)果為0。例子:例子:5&2 5&0 2|0 0在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。級最低。例子:例

11、子:3+0&2who 列出在列出在MATLAB工作空間中已有的變量工作空間中已有的變量whos 列出駐留變量的同時列出駐留變量的同時, ,還給出維數(shù)及性質(zhì)還給出維數(shù)及性質(zhì)clear 刪除內(nèi)存中的變量(數(shù)據(jù))刪除內(nèi)存中的變量(數(shù)據(jù))clc 刪除命令窗口的內(nèi)容(已使用過的命令)刪除命令窗口的內(nèi)容(已使用過的命令)home 光標(biāo)移到命令窗口的左上角光標(biāo)移到命令窗口的左上角clf 刪除圖形窗口的內(nèi)容刪除圖形窗口的內(nèi)容 調(diào)出剛才使用過的命令調(diào)出剛才使用過的命令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)矩陣作上下翻轉(zhuǎn)矩陣作上下翻轉(zhuǎn)矩陣作左右翻轉(zhuǎn)矩陣作左右翻轉(zhuǎn)提取提取A的對角元素的對角元素, ,返回列向量返回列向量以向量以向量v作對角元素創(chuàng)建對角矩陣作對角元素創(chuàng)建對角矩陣size(A)數(shù)組操作函數(shù)數(shù)組操作函數(shù)最大值最大值max、最小值、最小值min、求和、求和sum和求平均值和求平均值mean等等函數(shù)函數(shù),一

13、般作用于向量一般作用于向量,作用于矩陣時作用于矩陣時,是函數(shù)作用于矩陣是函數(shù)作用于矩陣相應(yīng)列向量的結(jié)果相應(yīng)列向量的結(jié)果,返回行向量返回行向量數(shù)值類型是:雙精度數(shù)值類型是:雙精度虛數(shù)和復(fù)數(shù)都當(dāng)作雙精度處理虛數(shù)和復(fù)數(shù)都當(dāng)作雙精度處理整數(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)計算結(jié)果顯示方式計算結(jié)果顯示方式MATLAB 標(biāo)點符號標(biāo)點符號、矩陣元素運算、矩陣元素運

14、算空格:輸入量之間的分隔符、數(shù)組元素分隔符空格:輸入量之間的分隔符、數(shù)組元素分隔符應(yīng)用例子應(yīng)用例子傳說古印度術(shù)士為國王發(fā)明了國際象棋(傳說古印度術(shù)士為國王發(fā)明了國際象棋(64格),國王問他想要什格),國王問他想要什么報酬,術(shù)士說:請在第一個放一粒米,在第二格放么報酬,術(shù)士說:請在第一個放一粒米,在第二格放2粒米,以后粒米,以后每格上放的米的個數(shù)是前一格的一倍。把每格上放的米的個數(shù)是前一格的一倍。把64格子放滿就行了。國王格子放滿就行了。國王滿口答應(yīng)了這個要求。滿口答應(yīng)了這個要求。問題:問題:1 國王需要給多少粒米?國王需要給多少粒米?問題:問題:2 假設(shè)假設(shè)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,):多條曲線繪圖格式,在同一坐標(biāo)系中繪制多個圖形。 plot(x, y, s):開關(guān)格式,開關(guān)量字符串s設(shè)定了圖形曲線的顏色、線型及標(biāo)示符號。23圖形顏色、標(biāo)記和線形參數(shù)表色彩字符色彩字符所定顏色所定顏色線型字符線型字符線型格式線型格式標(biāo)記符號標(biāo)記符號數(shù)據(jù)點形式數(shù)據(jù)點形式標(biāo)記符號標(biāo)記符號數(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、以序號為橫坐標(biāo),元素值為縱坐標(biāo)的曲線繪制以序號為橫坐標(biāo),元素值為縱坐標(biāo)的曲線 x=0:pi/10:2*pi; y=sin(x); plot(x,y)%繪制以繪制以x為橫坐標(biāo),為橫坐標(biāo),y為縱坐標(biāo)的曲線為縱坐標(biāo)的曲線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 給圖形加標(biāo)題給圖形加標(biāo)題 xlable 給給x軸加標(biāo)注軸加標(biāo)注 ylable 給給y軸加標(biāo)注軸加標(biāo)注 text 在圖形指定的任意位置加標(biāo)注在圖形指定的任意位置加標(biāo)注 gtext 利用鼠標(biāo)將標(biāo)注加到圖形任意位置利用鼠標(biāo)將標(biāo)注加到圖形任意位置 grid on 打開坐標(biāo)網(wǎng)格線打開坐標(biāo)網(wǎng)格線 grid off關(guān)閉坐標(biāo)網(wǎng)格

19、線關(guān)閉坐標(biāo)網(wǎng)格線 legend 添加圖例添加圖例 axis 控制坐標(biāo)軸刻度控制坐標(biāo)軸刻度27例:繪制正弦和余弦曲線,并加入網(wǎng)格和標(biāo)注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);指定位置加標(biāo)注指定位置加標(biāo)注title(正弦和余弦曲線正弦和余弦曲線); 標(biāo)題標(biāo)題legend(正弦正弦,余弦余弦)%添加圖例注解添加圖例注解xlabel(時間時間)x坐標(biāo)名坐標(biāo)名ylabel(正弦正弦&余弦余弦)y坐標(biāo)名坐標(biāo)名g

20、rid on%添加網(wǎng)格添加網(wǎng)格axis square%將圖形設(shè)置為正方形將圖形設(shè)置為正方形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字體、線條、坐標(biāo)軸粗細設(shè)置字體、線條、坐標(biāo)軸粗細設(shè)置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ù)坐標(biāo)對數(shù)坐標(biāo)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練習(xí)%曲線的畫法(請設(shè)置斷點執(zhí)行指令)a=0:10:360 %角度向量的度數(shù)x=a*pi/180 %角

25、度向量的弧度數(shù)figure %創(chuàng)建圖形窗口plot(x,sin(x),x,cos(x) %畫正弦和余弦曲線(橫坐標(biāo)刻度是弧度數(shù))plot(a,sin(x),a,cos(x) %畫正弦和余弦曲線(橫坐標(biāo)刻度是度數(shù))plot(a,sin(a),a,cos(a) %畫不正確的曲線(系統(tǒng)將度數(shù)當(dāng)作弧度數(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) %正弦線用實線加點畫,余弦線虛線和圈畫練習(xí)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) %用復(fù)數(shù)畫正弦和余弦曲線plot(exp(i*x) %用復(fù)數(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 %使坐標(biāo)間隔相等,呈現(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坐標(biāo)為元素的下標(biāo)位置mesh(x, y, z) x, y, z分別為三維空間的坐標(biāo)位置 三維曲面圖 三維曲面的繪圖是由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ù)組和多項式的構(gòu)造和運算方法 能夠使用常用的幾種函數(shù)進行一般的數(shù)值問題求解40主要內(nèi)容 3.1 矩陣 3.2 向量 3.3 數(shù)組

30、 3.4 多項式 413.1 矩陣MATLAB = matrix(矩陣)+ laboratory(實驗室)423.1.1 矩陣的構(gòu)造 通過直接輸入矩陣的元素構(gòu)造矩陣: 用中括號用中括號 把所有矩陣元素括起來把所有矩陣元素括起來 同一行的不同數(shù)據(jù)元素之間用空格或逗號間隔同一行的不同數(shù)據(jù)元素之間用空格或逗號間隔 用分號(用分號(;)指定一行結(jié)束)指定一行結(jié)束 數(shù)據(jù)元素可以是表達式,系統(tǒng)將自動計算結(jié)果數(shù)據(jù)元素可以是表達式,系統(tǒng)將自動計算結(jié)果 可分成幾行進行輸入,用回車符代替分號可分成幾行進行輸入,用回車符代替分號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 矩陣下標(biāo)與子矩陣提取矩陣下標(biāo)與子矩陣提取 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的標(biāo)準(zhǔn)正態(tài)分布隨機矩陣。例子:輸入矩陣?yán)樱狠斎刖仃嘇、B的值的值A(chǔ)=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) 設(shè)A為23矩陣,

34、則可以用zeros(size(A)建立一個與矩陣A同樣大小零矩陣。A=1 2 3;4 5 6; %產(chǎn)生一個23階矩陣Azeros(size(A) %產(chǎn)生一個與矩陣A同樣大小的零矩陣?yán)樱ɡm(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用于專門學(xué)科的特殊矩陣 (1) 魔

35、方矩陣魔方矩陣有一個有趣的性質(zhì),其每行、每列及兩條對角線上的元素和都相等。對于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(chǔ)=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 矩陣的算術(shù)運算矩陣的算術(shù)運算 1矩陣的加減運算:(加)、(減) 2矩陣乘法:*(乘) 3矩陣除法:/ (右除)、 (左除) 4矩陣的乘方:(乘方) 5矩陣轉(zhuǎn)置: (轉(zhuǎn)置運算符)523.1.3 矩陣的算術(shù)運算(續(xù))矩陣的算術(shù)運算(續(xù)) (1) 矩陣加減運算 假定有兩個矩陣A和B,則可以由A+B和A-B實現(xiàn)矩陣的加減運算。運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運算,A和B矩陣的相應(yīng)元素相加減。如果A與B的維數(shù)不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。3.1.3 矩陣的算

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

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

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

40、果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。3.1.4 矩陣的關(guān)系運算(續(xù))矩陣的關(guān)系運算(續(xù)) (3) 當(dāng)參與比較的一個是標(biāo)量,而另一個是矩陣時,則把標(biāo)量與矩陣的每一個元素按標(biāo)量關(guān)系運算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。3.1.4 矩陣的關(guān)系運算(續(xù))矩陣的關(guān)系運算(續(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是進行等于(=)比較的結(jié)果矩陣。3.1.5 矩陣的邏輯運算矩陣的邏輯運算 必須是兩個同維矩陣或其中一個矩陣為標(biāo)量才能進行 MATLAB提供了一些邏輯函數(shù)邏邏 輯輯 函函 數(shù)數(shù)功功 能能all如果所有的元素都是非零值,返回1;否則,返回0。any如果有一個元素為非零值,那么返回1;否則,返回0isempty判斷是否空矩陣isequal判斷兩矩陣是否相同isreal判斷是否是實矩陣find返回一個由非零元素的下標(biāo)組成的向量613.1.5 矩陣的邏輯運算矩陣的邏輯運算MATLAB提供了3種邏輯運算符:&(與

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

43、素之間按標(biāo)量規(guī)則逐個進行。最終運算結(jié)果是一個與矩陣同維的矩陣,其元素由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計算矩陣所對應(yīng)的行列式的值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%矩陣與其逆陣相乘結(jié)果是單位矩陣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 向量向量 向量是矢量運算的基礎(chǔ) 行向量 列向量 723.2.1 向量的構(gòu)造向量的構(gòu)造 1逐個輸入a=1 3 9 10 15 16%采用空格和逗號分隔構(gòu)成行向量b=1; 3; 9; 10; 15; 16 %采用分號隔開構(gòu)成列向量 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將字符串當(dāng)作一個行向量,每個元素對應(yīng)一個將字符串當(dāng)作一個行向量,每個元素對應(yīng)一個字符,其標(biāo)識方法和數(shù)值向量相同。也可以建立多行字符字符,其標(biāo)識方法和數(shù)值向量相同。也可以建

48、立多行字符串矩陣。串矩陣。字符串是以字符串是以ASCII碼形式存儲的。碼形式存儲的。abs和和double函數(shù)都可函數(shù)都可以用來獲取字符串矩陣所對應(yīng)的以用來獲取字符串矩陣所對應(yīng)的ASCII碼數(shù)值矩陣。相反,碼數(shù)值矩陣。相反,char函數(shù)可以把函數(shù)可以把ASCII碼矩陣轉(zhuǎn)換為字符串矩陣。碼矩陣轉(zhuǎn)換為字符串矩陣。3.2.3 字符串向量字符串向量例2-13 建立一個字符串向量,然后對該向量做如下處理:(1) 取第15個字符組成的子字符串。(2) 將字符串倒過來重新排列。(3) 將字符串中的小寫字母變成相應(yīng)的大寫字母,其余字符不變。(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ù)組乘法:對應(yīng)元素相乘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,用此向量構(gòu)造一多項式并顯示結(jié)果。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. 多項式的算術(shù)運算 參加加減運算的多項式應(yīng)該具有相同的階次。 多項式乘法采用conv函數(shù),除法由函數(shù)deconv完成 2. 求根 求多項式的根采用roots函數(shù):roots(P) 3. 求值 函數(shù)polyval可以將某個特定數(shù)值代入多項式: polyval (P,X) 函數(shù)polyvalm可以求出當(dāng)多項式中的未知數(shù)為方陣時的值。 4. 求導(dǎo) 使用polyder

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

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

54、j-1); endend91For循環(huán)應(yīng)當(dāng)注意的一些方面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算法不應(yīng)當(dāng)出現(xiàn)循環(huán)語句。Tic/toc5. 循環(huán)可以使用break跳出,但只跳出所在的循環(huán),不跳出整個嵌套結(jié)構(gòu)。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。通常表達式求值給一個標(biāo)量值,單數(shù)組值也同樣有效。934.1.3 if-else-end 結(jié)構(gòu)結(jié)構(gòu) 很多情況下,命令的序列需根據(jù)關(guān)系的檢驗有條件的執(zhí)行,它由if-else-end結(jié)構(gòu)提供。它的結(jié)構(gòu)如下: if expression1 commands1 elseif expression2 commands2 elseif else commands end944.1.3 if-else-end 結(jié)構(gòu)(續(xù))結(jié)構(gòu)(續(xù)) 在執(zhí)行過程中,MATLAB依次檢查各個表達式,只執(zhí)行第一個表達式為真的命令串,接下來的關(guān)系表

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

57、函數(shù)文件放在當(dāng)前目錄;如果對一個專題有了足夠多的函數(shù),可以生成一個工具箱,放在一個固定的目錄下,并在MATLAB中加入這個目錄路徑即可。984.2.1 函數(shù)調(diào)用(續(xù))函數(shù)調(diào)用(續(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ù)、命令行等都可以共享這些變量。在實際應(yīng)用中,應(yīng)當(dāng)盡量避免使用全局變量。1004.2.3 函數(shù)注意事項函數(shù)注意事項 函數(shù)可以按少于函數(shù)M 文件中所規(guī)定的輸入和輸出變量進行調(diào)用,但不能用多于函數(shù)M 文件中所規(guī)定的輸入和輸出變量數(shù)目。如果輸入和輸出變量數(shù)目多于函數(shù)M 文件中function 語句一開始所規(guī)定的數(shù)目,則調(diào)用時自動返回一個錯誤。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í)行期間臨時存在,以后就消失。因此,從一個調(diào)用到下一個調(diào)用,在函數(shù)工作空間變量存儲信息是不可能的。 1024.2.3 函數(shù)注意事項(續(xù))函數(shù)注意事項(續(xù)) 當(dāng)調(diào)用一個函數(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 工作空間和遞歸調(diào)用本身共享變量。為了在函數(shù)內(nèi)或MATLAB 工作空間中訪問全局變量,在每一個所希望的工作空間,變量必須說明是全局的。 實際編程中,無論什么時候應(yīng)盡量避免使用全局變量。要是用了全局變量,建議全局變量名要長,它包含所有的大寫字母,并有選擇地以首次出現(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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論