數(shù)學(xué)實(shí)驗(yàn)講義1(數(shù)組矩陣讀取函數(shù))課件_第1頁(yè)
數(shù)學(xué)實(shí)驗(yàn)講義1(數(shù)組矩陣讀取函數(shù))課件_第2頁(yè)
數(shù)學(xué)實(shí)驗(yàn)講義1(數(shù)組矩陣讀取函數(shù))課件_第3頁(yè)
數(shù)學(xué)實(shí)驗(yàn)講義1(數(shù)組矩陣讀取函數(shù))課件_第4頁(yè)
數(shù)學(xué)實(shí)驗(yàn)講義1(數(shù)組矩陣讀取函數(shù))課件_第5頁(yè)
已閱讀5頁(yè),還剩97頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、12 2張國(guó)權(quán)張國(guó)權(quán) 主編主編 科學(xué)科學(xué)出版社出版社 2004年2月第一版 書(shū)號(hào):ISBN 7-03-012444-83 3 MATLAB工程數(shù)學(xué)應(yīng)用 許波 劉征 編著 精通MATLAB5.3版 張志涌 編著 MATLAB6.5輔助優(yōu)化計(jì)算與設(shè)計(jì)飛思科技中心編著 MATLAB工具箱應(yīng)用指南控制工程篇 徐昕 李濤 伯曉晨 等編著 控制系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)MATLAB語(yǔ)言及應(yīng)用 薛定宇 著 MATLAB語(yǔ)言工具箱TOOLBOX實(shí)用指南 施陽(yáng) 李俊 等編著 MATLAB外部程序接口(6.x) 劉志儉 等 編著 數(shù)學(xué)實(shí)驗(yàn)蕭樹(shù)鐵主編,姜啟源等編著 4 45 5 出品:MathWork公司 起源:MATri

2、x LABoratory 商業(yè)化:1984年正式推向市場(chǎng)。6 6 MATLAB是一種科學(xué)計(jì)算工程軟件。憑借它在科學(xué)計(jì)算數(shù)據(jù)分析處理的強(qiáng)大功能,目前已經(jīng)成為了數(shù)學(xué)界首選的科學(xué)工程軟件之一。 在控制、通訊、信號(hào)處理以及科學(xué)計(jì)算等專業(yè)中,MATLAB都被廣泛的應(yīng)用。在這些行業(yè)中,MATLAB已經(jīng)被認(rèn)可為能夠有效提高工作效率,改善設(shè)計(jì)手段的工具軟件。 它也是大學(xué)生數(shù)學(xué)建模競(jìng)賽的重要工作軟件。7 7 理工科大學(xué)生和教師; 從事控制系統(tǒng)設(shè)計(jì)應(yīng)用、通訊系統(tǒng)仿真設(shè)計(jì)、圖形處理等專業(yè)的工程人員; 金融工程師和精算工程師; 不少?gòu)氖掠?jì)量經(jīng)濟(jì)研究的學(xué)者也在學(xué)習(xí)使用MATLAB。8 8 掌握MATLAB最基本的應(yīng)用不

3、需要特殊的背景知識(shí)。 但是具有良好的數(shù)學(xué)基礎(chǔ)和基本的計(jì)算編程知識(shí)會(huì)有助于掌握精通MATLAB。 然而學(xué)習(xí)其他專業(yè)工具箱和模塊時(shí),需要具備相應(yīng)的專業(yè)知識(shí)。9 9 安裝: 雙擊setup.exe,據(jù)提示逐步安裝. 啟動(dòng):雙擊快捷方式等. MATLAB環(huán)境:菜單、工具欄、命令窗、基本工作空間窗、當(dāng)前目錄窗、歷史指令記錄窗、當(dāng)前路徑選擇窗、程序編輯窗、幫助系統(tǒng)等。1010 簡(jiǎn)單算術(shù)運(yùn)算(數(shù)和矩陣的加減等) 表達(dá)式與賦值運(yùn)算 指令的續(xù)行輸入: 控制鍵回調(diào)指令111112121313 變量命名規(guī)則:字母開(kāi)頭,字母、數(shù)字、下劃線隨后,不超過(guò)31個(gè)字符. who,whos檢查內(nèi)存變量檢查內(nèi)存變量,clear清

4、除變量 save保存變量到文件保存變量到文件,load裝入變量裝入變量如:save fname x y z; load fname z 文件管理:dir,cd,what,delete等1414預(yù)定義變量含義預(yù)定義變量含義ans計(jì)算結(jié)果的缺省變量名N a N 或nan不是一個(gè)數(shù),如0/0、/eps機(jī)器零閾值nargin函數(shù)輸入變量數(shù)目Inf或inf 無(wú)窮大,如1/0nargout函數(shù)輸出變量數(shù)目i或j虛數(shù)單位realmax最大正實(shí)數(shù)pi圓周率realmin最小正實(shí)數(shù)若對(duì)預(yù)定義變量賦值,則默認(rèn)值將被“臨時(shí)”覆蓋,一旦clear該變量,就會(huì)還原預(yù)定義。在遵循IEEE算法規(guī)則的機(jī)器上,允許除0,這將返

5、回警告信息和記號(hào)NaN。1515 三角函數(shù):sin(x),cos(x),tan(x),atan(x),sinh(x),csc(x) 指數(shù)函數(shù):exp(x),log(x),log10(x),sqrt(x) 取整函數(shù):fix(x) 朝零方向取整 floor(x) 朝負(fù)無(wú)窮方向取整 ceil(x) 正無(wú)窮方向取整 round(x) 四舍五入 符號(hào)函數(shù):sign(x)1616 size(A)返回二元向量,分量為A的行列數(shù) size(A,1)返回A的行數(shù)行數(shù) size(A,2)返回A的列數(shù)列數(shù) length(A)相當(dāng)于max(size(A) flipud(A)矩陣上下翻轉(zhuǎn) fliplr(A)矩陣左右翻轉(zhuǎn)

6、 diag(A)提取矩陣A的對(duì)角元素成列向量 diag(v)以向量v為對(duì)角元構(gòu)造對(duì)角陣1717 min、max sum mean1818 在工作空間瀏覽器中可以直觀地看到由指令窗中的各指令所建立的內(nèi)存變量。 在工作空間瀏覽器中可通過(guò)右鍵調(diào)出功能強(qiáng)大的現(xiàn)場(chǎng)菜單,可以查閱、刪除變量,保存、傳入變量(MAT文件),甚至可以圖形化的觀察變量值。 用save和load指令也可以存取數(shù)據(jù)文件:save FileName全部變量保存為FileNane.mat文件save FileName v1 v2將變量v1、v2值保存為文件save FileName v1 v2 append將變量值添加進(jìn)文件save F

7、ileName v1 v2 ascii保存為8位ASCII文件save FileName v1 v2 ascii double 保存為16位ASCII文件若將save改為load,則數(shù)據(jù)裝入內(nèi)存變量。load(filename,變量名):載入該文件中的變量進(jìn)入工作區(qū)1919 在工作空間瀏覽器中雙擊一、二維數(shù)值型變量,便打開(kāi)了數(shù)組編輯器。 輸入大數(shù)組的小竅門(mén):指令窗內(nèi)先建立一個(gè)“空”數(shù)組(如:x= ),然后在工作空間中雙擊該變量打開(kāi)數(shù)組編輯器,在size欄內(nèi)輸入行、列維數(shù),最后在單元格中填入具體數(shù)據(jù)。(命令窗內(nèi)直接輸大量數(shù)據(jù)較麻煩)2020 MATLAB指令可以在命令窗口內(nèi)交互式執(zhí)行外,還可以收

8、集在程序編輯窗內(nèi),作為一段程序,批處理執(zhí)行。 MATLAB程序文件的擴(kuò)展名為.m,所以俗稱M文件。根據(jù)其內(nèi)容形式以及功能目的的不同,還可細(xì)分為腳本文件和函數(shù)文件。2121 在MATLAB中新建或打開(kāi)文件時(shí),將會(huì)出現(xiàn)M文件編輯器。在編輯器中可以編輯和調(diào)試M腳本文件和用戶自定義函數(shù)。 M腳本文件:擴(kuò)展名為“.m”的MATLAB文件,內(nèi)有多條MATLAB指令,MATLAB可以按批處理方式執(zhí)行的這些指令,其效果等同于在指令窗內(nèi)逐條執(zhí)行這些指令。MATLAB調(diào)用執(zhí)行M文件就如同執(zhí)行一般指令,也無(wú)須輸入?yún)?shù)。 M腳本文件產(chǎn)生的變量與指令窗產(chǎn)生的變量一樣,都駐留在MATLAB基本工作空間。2222 在MAT

9、LAB 程序中除了一些直接的指令外,有著大量的表達(dá)式以及賦值語(yǔ)句。這些表達(dá)式是有常量、變量、函數(shù)與運(yùn)算符有機(jī)結(jié)合構(gòu)成的。 算術(shù)運(yùn)算符:+、-、*、/、 關(guān)系運(yùn)算符:、=、=、= 邏輯運(yùn)算符:&、|、2323 for循環(huán)結(jié)構(gòu):for x=表達(dá)式1:表達(dá)式2:表達(dá)式3循環(huán)體語(yǔ)句組end while循環(huán)結(jié)構(gòu):while 表達(dá)式循環(huán)體語(yǔ)句組end2424 if-else-end分支結(jié)構(gòu)if 表達(dá)式1語(yǔ)句組1end switch-case分支結(jié)構(gòu)switch 表達(dá)式case 值1語(yǔ)句組1case 值2語(yǔ)句組2case 值n語(yǔ)句組notherwise語(yǔ)句組n+1end2525 腳本的編寫(xiě) 腳本文件

10、沒(méi)有輸入?yún)?shù),也不返回輸出參數(shù),只是一些指令行的組合,而且其中的所有變量也成為基本工作區(qū)的一部分。 腳本的運(yùn)行 在命令窗中鍵入腳本文件名即可。2626 函數(shù)文件能夠象庫(kù)函數(shù)一樣調(diào)用,從而擴(kuò)展MATLAB的功能。函數(shù)文件的內(nèi)容形式有特殊要求,主要是第一行比較特殊,其形式為:function 輸出變量列表=函數(shù)名(輸入變量名表)函數(shù)體語(yǔ)句;(function f=myfun(x) f=.;) 注:當(dāng)返回變量多于一個(gè)時(shí),應(yīng)該用方括號(hào),輸入變量多于一個(gè)時(shí),應(yīng)該用逗號(hào)隔開(kāi);編寫(xiě)完成后,必須用函數(shù)名存盤(pán),否則不能被調(diào)用;函數(shù)M文件不能訪問(wèn)基本工作空間中的變量。2727 MATLAB的數(shù)值運(yùn)算主要有矩陣運(yùn)算

11、和數(shù)組兩類。我們首先介紹矩陣運(yùn)算。 MATLAB的矩陣運(yùn)算就是滿足普通線性代數(shù)運(yùn)算法則的常規(guī)數(shù)值運(yùn)算。 MATLAB的基本數(shù)據(jù)單元是矩陣,數(shù)量被看成是11的矩陣,向量看作1n或n1的矩陣。2828在MATLAB中最常用的基本數(shù)據(jù)結(jié)構(gòu)就是一、二維數(shù)組,而標(biāo)量反到是數(shù)組的特例(11數(shù)組)。下面我們先來(lái)討論一下常規(guī)數(shù)組的特例。 向量(一維數(shù)組)的建立 矩陣(二維數(shù)組)的建立2929 輸入矩陣的最基本方法直接輸入法 直接輸入矩陣的元素,用方括號(hào)表示矩陣,同一行元素間用空格或逗號(hào)分隔,不同行間用分號(hào)或回車符分隔。 例如:A=1,2,3;4,5,6;7,8,9B=0 2 43030 利用冒號(hào)“:”生成等差

12、數(shù)列a=i:j %初值:終值a=i:k:j %初值:步長(zhǎng):終值 利用linspace函數(shù)生成線性等分行向量a=linspace(i,j) % 生成生成100個(gè)在個(gè)在i,j之間等間隔分布的元素之間等間隔分布的元素a=linspace(i,j,n) 利用logspace函數(shù)生成對(duì)數(shù)等分行向量a=logspace(i,j) % 生成生成50個(gè)從個(gè)從10 10 對(duì)數(shù)等間隔元素對(duì)數(shù)等間隔元素a=logspace(i,j,n)31313232 MATLAB可以用矩陣的名稱調(diào)用全矩陣,也可用下標(biāo)訪問(wèn)矩陣的某個(gè)或某些元素(注意下標(biāo)可以是向量)。 例如:B=A;a=A(2,3)A(:,3),A(2,:)A(1:

13、4,1:3),A(1 3 5,2,4) 可以用刪除矩陣的元素,如:A(:,2)=,A= 讀出數(shù)據(jù):讀出數(shù)據(jù):N = xlsread(filename, sheet, range) 寫(xiě)入數(shù)據(jù):寫(xiě)入數(shù)據(jù):xlswrite(filename, M, sheet, range) 示例:示例: A=ones(2,4) xlswrite(d:tmp.xls,A, sheet1, A1:D2) B = xlsread(d:tmp.xls, sheet1, A1:D2)3434 MATLAB元素通過(guò)數(shù)組下標(biāo)來(lái)標(biāo)識(shí),起始下標(biāo)為1;訪問(wèn)數(shù)組元素可通過(guò)數(shù)組名后跟圓括號(hào)內(nèi)的下標(biāo)(對(duì))來(lái)實(shí)現(xiàn)。如:A(2) , B(1,

14、3), C(1,3,5,2), D(:,2)等。 注意:數(shù)組的索引下標(biāo)可以是普通向量和邏輯向量(分量為邏輯值,必須由關(guān)系運(yùn)算產(chǎn)生),此時(shí)表示的是原數(shù)組的一個(gè)子數(shù)組。 例:x=-3:5; L=abs(x)2; y=x(L):輸出滿足條件的元素 I=1,3,4; x=x(I):輸出1,3,4位置的元素353536363737A=zeros(2,4)A(:)=1:8s=2 3 5; A(s):從左往右從上到下一列一列找位置,得出行向量Sa=10 20 30A(s)=Sa:將A中元素按s得位置替換為Sa中的元素A(:,2 3)=ones(2)3838 MATLAB提供的運(yùn)算可分?jǐn)?shù)組運(yùn)算與矩陣運(yùn)算. 從

15、結(jié)構(gòu)形狀看,二維數(shù)組與矩陣無(wú)區(qū)別.但是矩陣作為一種變換或映射算子的體現(xiàn),矩陣的運(yùn)算有明確而嚴(yán)格的數(shù)學(xué)規(guī)則;而數(shù)組運(yùn)算是MATLAB自定義的,針對(duì)數(shù)組每個(gè)元素的分別操作,目的是便于數(shù)據(jù)管理、使用簡(jiǎn)便、自然、有效。 數(shù)組運(yùn)算也可引入到函數(shù)定義中,即 X = xij mn , 則 f (X)= f (xij)mn 。393940404141 矩陣相加減:A+B;A-B; 矩陣相乘:A*B 矩陣左除:AB; 相當(dāng)與求AX=B的解 矩陣右除:B/A; 相當(dāng)與求XA=B的解 方陣的乘方:Ap (p為0或正負(fù)整數(shù))(注:p非整數(shù)時(shí)方陣的乘方涉及矩陣的特征值、特征向量*)4242 det(A)方陣的行列式 A

16、共扼轉(zhuǎn)置 inv(A)逆矩陣 orth(A)正交陣 rank(A)秩 trace(A)跡 d=eig(A),V,D=eig(A) 特征值、標(biāo)準(zhǔn)正交化的特征向量組、特征值 poly(A)特征多項(xiàng)式4343 多項(xiàng)式與其系數(shù)行向量1-1對(duì)應(yīng),故MATLAB可用行向量來(lái)表示降冪排列的多項(xiàng)式。 polyval(p,x);polyvalm(p,A)求值 roots(p)求根 conv(a,b)多項(xiàng)式相乘 g,r=deconv(c,b) %相除:c/b=gb+r polyder(p)求導(dǎo)4444 前面的矩陣運(yùn)算都是遵循線性代數(shù)的定義和運(yùn)算律的。為了能實(shí)現(xiàn)對(duì)應(yīng)元素之間的四則運(yùn)算、乘方等,MATLAB提供了一種

17、“數(shù)組運(yùn)算”,識(shí)別特征是在原有運(yùn)算符前加一個(gè)點(diǎn)號(hào)“.”。主要有: .* 、 ./ 、 . 、 . 、 . 等4545 用find()函數(shù)可以查找數(shù)組中滿足條件的元素下標(biāo)。如: i=find(A=3) %返回?cái)?shù)值為3元素的單下標(biāo)。 s,t=find(A=3) %返回?cái)?shù)值不超過(guò)3元素的全下標(biāo)。 A(s,t) A=3 A(A v0=1,-1,0; x=fminsearch(three,v0)5050 用fzero質(zhì)量可求y=f(x)的零點(diǎn) 調(diào)用格式:x=fzero(fun,x0)其中x0可以是初始點(diǎn)的坐標(biāo),也可是使函數(shù)值異號(hào)的區(qū)間。 例如:求y=sin(x)在x=3附近的零根x=fzero(sin,

18、3)5151 MATLAB擁有強(qiáng)大的繪圖功能,支持科學(xué)計(jì)算的可視化。5252 plot(y):若y是實(shí)向量,則y的分量為縱坐標(biāo),對(duì)應(yīng)的元素序號(hào)為橫坐標(biāo);若y是復(fù)向量,則實(shí)部為橫坐標(biāo),虛部為縱坐標(biāo);若y為矩陣,則每列對(duì)應(yīng)繪一條曲線。 plot(x,y):此時(shí),x的分量做橫坐標(biāo),對(duì)應(yīng)的y分量做縱坐標(biāo),描點(diǎn)作圖。 plot(x1,y1, x2,y2,):同時(shí)繪制(x1,y1)、(x2,y2)等多條曲線。 例如:x=0:0.1:2*pi;plot(x,sin(x),x,cos(x)5353 在調(diào)用plot時(shí)可以設(shè)定顏色、線型、數(shù)據(jù)點(diǎn)標(biāo)記,基本的調(diào)用格式為:plot(x,y,clor-linestyle

19、-marker)其中clor-linestyle-marker為一字符串,由代表顏色、線型、數(shù)據(jù)點(diǎn)標(biāo)記的字符組成。 顏色字符有:y(黃); r(紅); g(綠); b(藍(lán)); w(白); k(黑); m(紫);c(青)等。 線型字符有:-(實(shí)線); :(點(diǎn)線); -.(點(diǎn)劃線); -(虛線)。 數(shù)據(jù)點(diǎn)標(biāo)記字符: .(小黑點(diǎn)); +(加號(hào)); *(星號(hào)); o(小圓圈); pentagram(五角星);s(square方塊)。 例如:plot(x1,y1,-r,x2,y2,ob)5454 如不指定,MATLAB將自動(dòng)設(shè)置縱橫坐標(biāo)比例和顯示范圍,若不滿意,可用axis指令控制。常用的形式有: ax

20、is(xmin xmax ymin ymax) axis equal 各坐標(biāo)軸單位長(zhǎng)度相同 axis square 圖框呈正方形 axis off 取消坐標(biāo)軸顯示5555 xlabel (字符串) ylabel (字符串) zlabel (字符串) title(字符串) text(x,y,字符串) gtext (字符串) grid on/off5656 hidden on 曲面消隱。 hidden off 曲面透視。 hold on 保持原坐標(biāo)屬性,可以疊加圖形。 hold off 重設(shè)坐標(biāo)屬性,后圖覆蓋前圖。 例如:x=0:0.1:6;y=sin(x);z=cos(x);u=cos(2*x)

21、;hold onplot(x,y,r),plot(x,z,b)hold offplot(x,u)5757 用subplot(m,n,p)可在一個(gè)圖形窗口內(nèi)分割出mn個(gè)繪圖區(qū),并指定當(dāng)前繪圖區(qū)為第p個(gè)。 例如:x=linspace(0,2*pi,30);y=sin(x);z=cos(x);u=2*sin(x).*cos(x);v=sin(x)./cos(x);subplot(2,2,1),plot(x,y),title(y=sinx)subplot(2,2,2),plot(x,z),title(z=cosx)subplot(2,2,3),plot(x,u),title(u=sin2x)subpl

22、ot(2,2,4),plot(x,v),title(v=tanx)5858 用plot3(x,y,z)指令可以繪制空間曲線,其中x、y、z是曲線上點(diǎn)的坐標(biāo)向量。 例如:t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)5959 電腦繪圖的本質(zhì)是描點(diǎn)繪圖,所以必須把控制曲面形狀的點(diǎn)坐標(biāo)準(zhǔn)備好,通常是曲面上的網(wǎng)格點(diǎn)。-1-0.500.51-1-0.500.51-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.8160606161 mesh(X,Y,Z) 畫(huà)三維曲面網(wǎng)格畫(huà)三維曲面

23、網(wǎng)格 meshc(X,Y,Z) 畫(huà)帶等值線的三維曲面網(wǎng)格 meshz(X,Y,Z) 畫(huà)帶底座的三維曲面網(wǎng)格 surf(X,Y,Z) 畫(huà)三維曲面 surfc(X,Y,Z) 畫(huà)帶等值線的三維曲面 濃淡處理指令shading的使用方式: shading flat 每個(gè)小貼片都有一種顏色。 shading faceted 在flat用色基礎(chǔ)上,在貼片四周勾畫(huà)出黑色網(wǎng)線。 shading interp 不同貼片間顏色通過(guò)插值而平滑過(guò)度。6262 contour(X,Y,Z) 畫(huà)等高線 contour3(X,Y,Z) 畫(huà)三維等高線 例如:X,Y,Z=peaks(30);surf(X,Y,Z)figure(

24、2);contour(X,Y,Z,16)figure(3); contour3(X,Y,Z,16)6363 設(shè)置調(diào)色盤(pán)指令colormap: colormap(maps) 其中maps為m3的調(diào)色盤(pán)矩陣,它的每一行是RGB三原色數(shù)組; colormap(調(diào)色盤(pán)名) 其中預(yù)設(shè)的調(diào)色盤(pán)名有: hot,cool,bone,gray,hsv,jet,pink,winter,summer, spring等; caxis(a,b)指令指定a,b間的實(shí)際數(shù)據(jù)與調(diào)色盤(pán)中所有顏色相對(duì)應(yīng); colorbar(vert),colorbar(horiz),colorbar指令可將調(diào)色盤(pán)中所有顏色用顏色尺條顯示出來(lái)。

25、用指定顏色畫(huà)曲面:surf(X,Y,Z,C)其中C為與Z結(jié)構(gòu)相同的顏色矩陣,若C缺省則默認(rèn)為Z。6464 view(az,el) 通過(guò)方位角、俯視角設(shè)置視點(diǎn)。 例如:x,y,z=peaks(30);c=ones(size(z);surf(x,y,z,c);caxis(0,3)caxis(0,1.1)colorbarview(60,30)6565 用指令“M(i)=getframe”可以將當(dāng)前圖形攝入到結(jié)構(gòu)數(shù)組M的第i個(gè)元素內(nèi)。 用指令“movie(M,k)”可將M中的畫(huà)片播放k次。 例如:x=3*pi*(-1:0.05:1);y=x; X,Y=meshgrid(x,y);R=sqrt(X.2+

26、Y.2)+eps;Z=sin(R)./R;h=surf(X,Y,Z);colormap(jet);axis offaxis manual % 凍結(jié)當(dāng)前坐標(biāo)范圍for i=1:20rotate(h,0,0,1,25); %以z軸為旋轉(zhuǎn)軸,轉(zhuǎn)25度mmm(i)=getframe;endmovie(mmm,10)6666 非數(shù)數(shù)組”和“空”數(shù)組 字符串?dāng)?shù)組 單元數(shù)組 結(jié)構(gòu)體數(shù)組6767 “非數(shù)”數(shù)組:數(shù)組元素允許為NaN (非數(shù)),在參與運(yùn)算時(shí),它在結(jié)果中將被傳遞。該類元素的意義是:真實(shí)記述0/0、/、0的后果;避免因0/0、/、0運(yùn)算造成程序執(zhí)行中斷;在數(shù)據(jù)可視化中,裁剪圖形。 “空”數(shù)組:某(幾

27、)維長(zhǎng)度為零的數(shù)組。經(jīng)常用于改變數(shù)組大小。如:a= ,b=ones(2,2,0),A(:,1)=6868 字符串?dāng)?shù)組的內(nèi)容是字符或字符串,它與數(shù)值型數(shù)組是不同的類型??梢杂煤瘮?shù)class(Arrary)判別數(shù)組Arrary的類型。 可用賦值法直接建立字符串?dāng)?shù)組,只要將所賦值內(nèi)容用單引號(hào)對(duì)括住,MATLAB 就識(shí)別為字符串。 內(nèi)存中存放一個(gè)字符需要2個(gè)字節(jié),而存放一個(gè)數(shù)值標(biāo)量需要8個(gè)字節(jié)。 例:字符串建立與倒排序。a=This is a VIP test !, size(a)b=a(end:-1:1), size(b) , a(12:14) 刪除字符串結(jié)尾處的空格:刪除字符串結(jié)尾處的空格: S=

28、deblank(C) 輸入空格符輸入空格符 : blanks(n) 產(chǎn)生產(chǎn)生n個(gè)空格個(gè)空格 將字符串進(jìn)行大小寫(xiě)轉(zhuǎn)換:將字符串進(jìn)行大小寫(xiě)轉(zhuǎn)換:upper(S) lower(S) 將字符串作為命令執(zhí)行:將字符串作為命令執(zhí)行: a=eval(字符串表達(dá)式字符串表達(dá)式) 字符串比較操作:字符串比較操作: strcmp(stringl,string) 返回返回0,1 字符串中查找子串:字符串中查找子串:findstr(str1,str2)返回短串的開(kāi)始位置返回短串的開(kāi)始位置 字符串替換操作:字符串替換操作:strrep(s1,s2,s3)用用s3替換替換s1中的中的s2 字符串與數(shù)值轉(zhuǎn)換:字符串與數(shù)值轉(zhuǎn)

29、換:int2str(A)、 num2str(A)、 str2num(S) abs(str)把串翻譯成把串翻譯成ASCII碼碼; setstr(asc)把把ASCII碼翻譯為串碼翻譯為串 示例:示例: a=Hello “World” s1=upper(a) s2=lower(a) abs(a) a=This is a good man! s=a,blanks(2) deblank(s) strrep(s,good,bad) i=findstr(s,is) b=eval(1,2;3,4) fid=fopen(data.txt,r) %打開(kāi)數(shù)據(jù)文件返回文件句柄 line=fgetl(fid) %讀取

30、文件句柄對(duì)應(yīng)文件的一行字符 k=findstr(line,cgg) %返回字符串中字串cgg位置 s=length(k) line=fgetl(fid) k=findstr(line,cgg) s=length(k) fclose(fid) %關(guān)閉文件句柄對(duì)應(yīng)的文件7272 單元數(shù)組與結(jié)構(gòu)體數(shù)組可以把多個(gè)類型不同的相關(guān)數(shù)據(jù)集成為一體。 形象的比方:住宅樓內(nèi)墻面上的一排郵箱集合就是單元數(shù)組、結(jié)構(gòu)體數(shù)組,而每個(gè)郵箱就是單元數(shù)組一個(gè)單元或結(jié)構(gòu)體數(shù)組中的結(jié)構(gòu)變量,各郵箱里面可以放種不同類型物品(數(shù)據(jù)),每個(gè)郵箱可用數(shù)字標(biāo)識(shí)(數(shù)組的下標(biāo))。73737474 一、按單元索引進(jìn)行賦值如:A(1,1)=1,2

31、;3,4,A(1,2)=abc 二、按內(nèi)容編址進(jìn)行賦值如:B1,1=1,2;3,4,B1,2=abc 注意:花括號(hào)用于訪問(wèn)單元的內(nèi)容,圓括號(hào)()用于訪問(wèn)單元。如:e=A(1,1),f=A1,17575 使用cell函數(shù)可為單元數(shù)組先定制外形,然后再賦值成為一個(gè)具體的單元數(shù)組。 如:c=cell(2,3)c(1,1)=This does workc2,4=This works two 注:cellfun可將一指定的函數(shù)應(yīng)用到單元數(shù)組的所有單元上。如:cellfun(length,A)cellfun(isclass,A,char)7676 與單元數(shù)組一樣,結(jié)構(gòu)體數(shù)組也能在一個(gè)數(shù)組里存放各類數(shù)據(jù)。

32、結(jié)構(gòu)體數(shù)組的基本組分(Element)是結(jié)構(gòu)體(Structure) 。數(shù)組中每個(gè)結(jié)構(gòu)體是平等的(結(jié)構(gòu)都一樣),它們以下標(biāo)區(qū)分。結(jié)構(gòu)體必須在劃分域后才能使用。具體數(shù)據(jù)必須存放在域中,而不同的域可存放不同類型、大小的數(shù)組。 結(jié)構(gòu)體數(shù)組的編址方法同樣也有單下標(biāo)和全下標(biāo)兩種,與一般無(wú)異。但訪問(wèn)具體數(shù)據(jù)必須通過(guò)數(shù)組元素的域名(點(diǎn)號(hào)連接)才行。7777直接對(duì)域賦值法直接對(duì)域賦值法SV.x=12;SV.c=abc;SV(2).x=33;SV(2).c=efg;SVSV(1),SV(2),SV(1).x%結(jié)構(gòu)體的域由(結(jié)構(gòu)體名)結(jié)構(gòu)體的域由(結(jié)構(gòu)體名).(域名)標(biāo)識(shí)。(域名)標(biāo)識(shí)。使用使用struct函數(shù)法

33、函數(shù)法sv=struct(field1,values1,field2,values2, .)sv=struct(type,big,little,color,blue,red ,x,3,4)顯示結(jié)構(gòu)體數(shù)組內(nèi)容:顯示結(jié)構(gòu)體數(shù)組內(nèi)容:svsv(1)sv(2).color78787979 MATLAB把復(fù)數(shù)作為一個(gè)整體處理,虛數(shù)單位用預(yù)定義變量i或j表示。 復(fù)數(shù)z=a+bi=rei的直角坐標(biāo)表示與極坐標(biāo)表示之間轉(zhuǎn)換的MATLAB指令如下:real(z) 給出復(fù)數(shù)z的實(shí)部a=rcos 。imag(z) 給出復(fù)數(shù)z的虛部b=rsin 。abs(z) 給出復(fù)數(shù)z的模r=a2+b2 。angle(z) 給出復(fù)

34、數(shù)的幅角=arctg(b/a) (弧度)。8080 MATLAB的矩陣元素允許是復(fù)數(shù)、復(fù)變量和由它們組成的表達(dá)式。 MATLAB中復(fù)數(shù)的表示:(1) z=a+bi a,b必須是標(biāo)量,b與i間不 能有空格;(2) z=a+b*ia,b可以是矩陣、數(shù)組。(3) z=r*exp(*i)用極坐標(biāo)表示復(fù)數(shù)8181 【例1.3-6】A=1,3;2,4-5,8;6,9*iB=1+5i,2+6i;3+8*i,4+9*i C=A*B 答案 8282 【例1.3-7】 答案答案8383 【例1.3-8】(1) 答案答案8484 【例1.3-8】(2) 。8585t=0:pi/20:2*pi;x=R*sin(t);

35、y=R*cos(t);plot(x,y,b:),gridhold onplot(rrr(1),.,MarkerSize,30,Color,r)plot(rrr(2,3),o, M a r k e r S i z e , 1 5 ,Color,b)axis(-3,3,-3,3)axis squarehold off8686計(jì)算結(jié)果可視化是MATLAB的主要組成部分,其繪圖指令具有自然、簡(jiǎn)潔、靈活等特點(diǎn)。這里先簡(jiǎn)單介紹幾個(gè)常用繪圖指令。8787 畫(huà)出衰減振蕩曲線y=e-t/3sin3t及其它的包絡(luò)線y=e-t/3。t的取值范圍是0,4。 -0.8-0.6-0.4-0.202468101214-10

36、0.20.40.60.8188888989指令指令含義含義舉例舉例909091919292 上、下鍵 左、右鍵 PageUp/PageDown Home/End Delete Backspace Esc前/后尋找歷史指令當(dāng)前行移動(dòng)光標(biāo)上下翻頁(yè)當(dāng)前行首尾刪右邊字符刪左邊字符清除當(dāng)前行內(nèi)容9393 歷史指令窗Command History(選中加右鍵)單行或多行指令復(fù)制、粘貼Copy單行或多行指令重新運(yùn)行Evaluate Selection多行指令寫(xiě)進(jìn)M文件Creat M-File 實(shí)錄指令diary (將操作的指令保存在日志文件中)1.進(jìn)目錄:cd 目錄名2.運(yùn)行指令記錄:diary 日志文件名

37、3.結(jié)束指令記錄:diary off9494 用cd指令:cd 目錄名(全路徑) 目錄設(shè)置欄:MATLAB桌面右上方有目錄設(shè)置欄,在里面填入目錄名或通過(guò)瀏覽按鈕來(lái)選擇一個(gè)目錄。 建議:將自己的用戶目錄設(shè)置為當(dāng)前目錄,這樣保存文件時(shí),將默認(rèn)地保存在當(dāng)前目錄內(nèi)。9595 執(zhí)行指令時(shí)的基本搜索過(guò)程內(nèi)存變量=內(nèi)建函數(shù)=當(dāng)前目錄M文件=沿搜索路徑找M文件 更改搜索路徑可利用指令“pathtool”或選擇菜單File=Set Path,在隨后出現(xiàn)的“Set Path”對(duì)話框中可調(diào)整搜索順序、增加或刪除搜索路徑。另外,path指令也可在當(dāng)前matlab環(huán)境下臨時(shí)增加搜索路徑。path指令用法為:path(path,新增的搜索路徑) (最后搜)或:path(新增的搜索路徑,path) (最先搜) 指令exist、which、load也都遵循搜索路徑的順序。96969797 在工作空間瀏覽器中可以直觀地看到由指令窗中的各指令所建立的內(nèi)存變量。 在工作空間瀏覽器中可通過(guò)右鍵調(diào)出功能強(qiáng)大的現(xiàn)場(chǎng)菜單,可以查閱

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論