第二章程序設(shè)計_第1頁
第二章程序設(shè)計_第2頁
第二章程序設(shè)計_第3頁
第二章程序設(shè)計_第4頁
第二章程序設(shè)計_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章程序設(shè)計第1章 MATLAB語言入門語言簡單易學(xué)語言簡單易學(xué)代碼短小高效代碼短小高效計算功能強大計算功能強大繪圖非常方便繪圖非常方便擴充能力強大擴充能力強大幫助功能完整幫助功能完整R2006a2007a2008a發(fā)展歷程發(fā)展歷程基本特點基本特點進入編譯平臺進入編譯平臺編譯編譯m m文件或命令窗口輸入函數(shù)命令文件或命令窗口輸入函數(shù)命令設(shè)計可視化程序界面設(shè)計可視化程序界面 進一步編制進一步編制m m文件文件( (底稿文件和函數(shù)文件底稿文件和函數(shù)文件) )編譯過程與完善程序編譯過程與完善程序?qū)W習(xí)文件學(xué)習(xí)文件編程步驟編程步驟(1)使用函數(shù)在線幫助使用函數(shù)在線幫助 help 函數(shù)

2、命令函數(shù)命令=名稱通常是小寫字母名稱通常是小寫字母(2)使用全部幫助。使用全部幫助。 MATLAB7.0的自述文件,見圖的自述文件,見圖1-14計算計算 1到到100的平方和。的平方和。 x=1:100y=x.2;z=sum(y)鼠標(biāo)雙擊鼠標(biāo)雙擊WinXP桌面上圖標(biāo)桌面上圖標(biāo)在在WinXP“開始開始”菜單的菜單的 “程序程序”選項中選擇選項中選擇 “ MATLAB”退出退出MATLAB命令窗口鍵入命令窗口鍵入“quit”或或 “Ctrl+Q”鼠標(biāo)選擇菜單鼠標(biāo)選擇菜單 file Exit MATLABMATLAB 使用簡介使用簡介啟動啟動 MATLABMATLAB桌面桌面命令窗口命令窗口工作空間

3、瀏覽工作空間瀏覽命令歷史窗命令歷史窗口口命令窗口、編輯窗口、圖形窗口命令窗口、編輯窗口、圖形窗口MATLAB 使用簡介使用簡介 n=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 使用簡介使用簡介7/ 15例例1.計算級數(shù)計算級數(shù):S=1+2+22+23+263= 6302nn2.1 常量與變量常量與變量2.2 數(shù)組建立與引用數(shù)組建立與引用2.3 運算符運算符2.4 m文件文件2.5

4、程序設(shè)計程序設(shè)計 MATLAB文件形式文件形式命令文件的命名與位置命令文件的命名與位置函數(shù)文件的命名與格式函數(shù)文件的命名與格式M文件的調(diào)試文件的調(diào)試順序結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)2.1.1特殊常量特殊常量 MATLAB中特殊的固定變量稱為常量。中特殊的固定變量稱為常量。 ans pi realmax realmin inf NaN i j date clock tic toc 2.1 常量與變量_1常常 數(shù)數(shù)返返 回回 值值ans默認變量名,保存最近的結(jié)果默認變量名,保存最近的結(jié)果pi圓周率圓周率realmax最大正浮點數(shù)最大正浮點數(shù)realmin最小正浮點數(shù)最小正浮點數(shù)in

5、f無限值無限值i,j虛數(shù)單位虛數(shù)單位NaN不合法的數(shù)值值,非數(shù)值不合法的數(shù)值值,非數(shù)值date日期日期clock時間時間復(fù)數(shù)指令:復(fù)數(shù)指令:real(z) 給出復(fù)數(shù)給出復(fù)數(shù)z的實部;的實部;image(z) 給出復(fù)數(shù)給出復(fù)數(shù)z的虛部;的虛部;abs(z) 給出復(fù)數(shù)給出復(fù)數(shù)z的模;的模;angle(z) 以弧度為單位計算以弧度為單位計算z的復(fù)角。的復(fù)角。2.1.2一般變量一般變量(可動變量可動變量) MATLAB依據(jù)變量值或?qū)ψ兞坎僮鱽碜R別變量類型,依據(jù)變量值或?qū)ψ兞坎僮鱽碜R別變量類型,不要求事先對所使用變量進行聲明或指定變量類型。不要求事先對所使用變量進行聲明或指定變量類型。 MATLAB中的

6、變量命名規(guī)則:中的變量命名規(guī)則:(1)變量名區(qū)分大小寫。)變量名區(qū)分大小寫。(2)變量名長度不超過)變量名長度不超過31位。位。(3)變量名以字母開頭,可以是字母、數(shù)字、下劃線組)變量名以字母開頭,可以是字母、數(shù)字、下劃線組成,但不能使用標(biāo)點。成,但不能使用標(biāo)點。 2.1 常量與變量_2 變量命名規(guī)則變量命名規(guī)則MATLAB中的變量作用域。中的變量作用域。例如:合法變量名例如:合法變量名x1 ,x2 ,a,b,c , abc,Ma1,zhang_3xNo_1,alpha, 不合法變量:不合法變量:x%1,2x,x變量,變量,a b c.變量名和函數(shù)名對字母的大小寫敏感變量名和函數(shù)名對字母的大小

7、寫敏感; X,x , Z , z 是不同變量是不同變量創(chuàng)建變量創(chuàng)建變量在命令窗口中直接輸入變量名稱創(chuàng)建在命令窗口中直接輸入變量名稱創(chuàng)建A9A 9isvarname 8th_column /確認變量名的合法性確認變量名的合法性ans= 0舉舉 例例描描 述述邏輯型數(shù)組邏輯型數(shù)組magic(4)10包含包含1、0或或true、false字符型數(shù)組字符型數(shù)組Hello長度長度16位,即為字符串位,即為字符串Int8、unit8int16、unit16uint8(magic(3)長度為長度為8位、位、16位的有符號和無符位的有符號和無符號整型數(shù)組號整型數(shù)組single3*1038 單精度數(shù)值型數(shù)組單精

8、度數(shù)值型數(shù)組double3*103005+6i雙精度數(shù)值型數(shù)組雙精度數(shù)值型數(shù)組單元數(shù)組單元數(shù)組17 hello eye(2)包含其他數(shù)組。將不同大小有關(guān)包含其他數(shù)組。將不同大小有關(guān)系的數(shù)據(jù)集中到一起系的數(shù)據(jù)集中到一起結(jié)構(gòu)數(shù)組結(jié)構(gòu)數(shù)組a.day=12;a.color=red;a.mat=magic(3);具有字段名。包含其他數(shù)組。與具有字段名。包含其他數(shù)組。與單元數(shù)組類似單元數(shù)組類似MATLAB用用format命令來控制輸出格式,命令來控制輸出格式,format short 短格式短格式 3.146format long 長格式長格式 3.14159265358979format short e

9、 短格式短格式e 3.1416e+000format long e 長格式長格式e 3.141592653589793e+000format rat 分數(shù)格式分數(shù)格式 355/113format bank 銀行格式銀行格式 3.14who 列出在列出在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 刪除圖

10、形窗口的內(nèi)容刪除圖形窗口的內(nèi)容 調(diào)出剛才使用過的命令調(diào)出剛才使用過的命令quit 退出退出MATLABdir 顯示當(dāng)前目錄下文件及子目錄顯示當(dāng)前目錄下文件及子目錄MATLAB命令窗口的部分通用命令命令窗口的部分通用命令2.2 數(shù)組_1 建立與引用2.2數(shù)組數(shù)組 2.2.1建立數(shù)組建立數(shù)組 1 逐個元素輸入法逐個元素輸入法格式:格式:x=a,b,c x=a b c 例例2-1 2.2 數(shù)組_1 建立與引用2 冒號法冒號法格式:格式:x=初始量:步長:終止量初始量:步長:終止量x = i : jiji j1x = i: j: k iki kj 例例2-2 2.2 數(shù)組_1 建立與引用3 特殊方法特

11、殊方法 linspace,logspacex=linspace(初始量:終止量:數(shù)組元素個數(shù))(初始量:終止量:數(shù)組元素個數(shù))x=logspace(初始量:終止量:數(shù)組元素個數(shù))(初始量:終止量:數(shù)組元素個數(shù)) 例例2-3 例例2-4 2.2 數(shù)組_1 建立與引用2.2.2數(shù)組應(yīng)用數(shù)組應(yīng)用格式:A(s):數(shù)組A的第s 個元素 例如:A(3)=7 A(1,3,5)=2 A(1,3,5)=2,6,72.2.1 創(chuàng)建矩陣的常用方法創(chuàng)建矩陣的常用方法:直接輸入法三條規(guī)則:直接輸入法三條規(guī)則: 矩陣元素必須在方括號矩陣元素必須在方括號 之內(nèi)之內(nèi); 同一行相鄰元素間用逗號或空格分隔同一行相鄰元素間用逗號或

12、空格分隔; 矩陣的行與行之間必須用分號分隔矩陣的行與行之間必須用分號分隔.例例4. 三階三階Hilbert矩陣矩陣 A=1 1/2 1/3;1/2 1/3 1/4; 1/3 1/4 1/5A = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000函數(shù)法構(gòu)造特殊矩陣函數(shù)法構(gòu)造特殊矩陣聚合矩陣聚合矩陣通過連接一個或多個矩陣來形成新的矩陣通過連接一個或多個矩陣來形成新的矩陣C=A B/水平方向上聚合水平方向上聚合C=A;B/垂直方向上聚合垂直方向上聚合例例 A=ones(2,5)*6; B=rand(3,5); C=A;B C

13、=6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 6.0000 0.6154 0.7382 0.9355 0.8936 0.8132 0.7919 0.1763 0.9169 0.0579 0.0099 0.9218 0.4057 0.4103 0.3529 0.1389 獲取矩陣的元素獲取矩陣的元素A(row,column)具體的:A(r,c)A(r,:)A(:,c)A(:)A(s)A(L)A=2 6 9;4 2 8;3 5 1A= 2 6 9 4 2 8 3 5 1A(3,2)ans= 5A(6) /等同等同A(

14、3,2)ans= 5Sum(A(1:3,3) /求第三列元素之和求第三列元素之和12/18創(chuàng)建字符串使用單引號創(chuàng)建創(chuàng)建字符串使用單引號創(chuàng)建Country=China;name=Li Yi;Hu Xu/創(chuàng)建二維字符串?dāng)?shù)組創(chuàng)建二維字符串?dāng)?shù)組name= Li Yi Hu Xuname=Liu Ying;Hu Xu /字符串長度要相同字符串長度要相同name=char(Liu Ying,Hu Xu)/使用使用char函數(shù)創(chuàng)建函數(shù)創(chuàng)建Str2double函數(shù)將字符串單元數(shù)組轉(zhuǎn)換為雙精度值函數(shù)將字符串單元數(shù)組轉(zhuǎn)換為雙精度值c=37.294e-1;-58.375;13.796;d=str2double(c)

15、d= 3.7294 -58.3750 13.7960int2str:整型轉(zhuǎn)換為字符串型整型轉(zhuǎn)換為字符串型num2str:實數(shù)轉(zhuǎn)換為字符串型實數(shù)轉(zhuǎn)換為字符串型mat2str:矩陣轉(zhuǎn)換為字符串型矩陣轉(zhuǎn)換為字符串型比較字符串比較字符串str1=hello;str2=help;strcmp(str1,str2)C= 0 /falsestr1=str2ans= 1 1 1 0 0 /確定兩個字符串中的相同字符確定兩個字符串中的相同字符strncmp: 可選擇字符串的前可選擇字符串的前n+1個字符進行比較個字符進行比較聚合字符串聚合字符串num_chars=28;s=There are int2str(n

16、um_chars)characters here;s=sprintf(There are %d characters heren,num_chars);country=China;province=SiChuan;strcat(country,province)ans= China,SiChuan索引生成索引生成A=5 7 8;0 1 9;4 3 6; /創(chuàng)建一個二維數(shù)組創(chuàng)建一個二維數(shù)組A(:,:,2)=1 0 4;3 5 6;9 8 7; /為為A添加第三維添加第三維MATLAB函數(shù)生成函數(shù)生成B=randn(4,3,2); /創(chuàng)建正態(tài)分布隨機數(shù)的創(chuàng)建正態(tài)分布隨機數(shù)的432的數(shù)組的數(shù)組類似的

17、函數(shù)有類似的函數(shù)有ones(),zeros()等等cat函數(shù)生成函數(shù)生成B=cat(dim,A1,A2) /按指定的維數(shù)將多個數(shù)組聚合按指定的維數(shù)將多個數(shù)組聚合調(diào)用字段的數(shù)組調(diào)用字段的數(shù)組1、使用賦值語句創(chuàng)建結(jié)構(gòu)數(shù)組、使用賦值語句創(chuàng)建結(jié)構(gòu)數(shù)組=Lu dan;/可包含任何類型的數(shù)據(jù)可包含任何類型的數(shù)據(jù)student.ID=02;student.test=79 75 73;80 78 77.5;80 85 85;student(2).name=Han xu;/擴展結(jié)構(gòu)數(shù)組擴展結(jié)構(gòu)數(shù)組student(2).ID=10;student(2).test=68 70 68;78 8

18、8 81;92 90 93;2、使用、使用struct函數(shù)函數(shù)str_array=struct(field1,val1, field2,val2,)3、獲取數(shù)據(jù)、獲取數(shù)據(jù)str=student(2).namestudent(3).test(2,2)=87IDs=student.ID/包含所有的包含所有的ID字段字段4、操作字段、操作字段student(2).gender=boy;/為數(shù)組的每個結(jié)構(gòu)添加字段為數(shù)組的每個結(jié)構(gòu)添加字段student=rmfield(student,name);/刪除給定字段刪除給定字段mean(student(2).test);/計算計算test數(shù)組的行均值數(shù)組的行

19、均值total=sum(student.ID);所有所有ID字段求和字段求和能包含其它數(shù)組能包含其它數(shù)組1、創(chuàng)建單元數(shù)組、創(chuàng)建單元數(shù)組A1,1=1 4 3; 0 5 8;7 2 9;A1,2=Liu zhong;A2,1=3+7i;A2,2=-pi:pi/10:pi;/通過矩陣單元索引訪問數(shù)據(jù)通過矩陣單元索引訪問數(shù)據(jù)或或 A1,1=1 4 3; 0 5 8;7 2 9; A1,2=Liu zhong; A2,1=3+7i; A2,2=-pi:pi/10:pi;/通過矩陣內(nèi)容索引訪問數(shù)據(jù)通過矩陣內(nèi)容索引訪問數(shù)據(jù)2.2 數(shù)組_2 細胞數(shù)組與結(jié)構(gòu)數(shù)組1 細胞數(shù)組細胞數(shù)組 例例2-8 細胞數(shù)組是以單元

20、為元素,每個單元可以包含其它類型數(shù)細胞數(shù)組是以單元為元素,每個單元可以包含其它類型數(shù)組,如實數(shù)矩陣、字符串?dāng)?shù)組、復(fù)數(shù)向量。細胞數(shù)組通常組,如實數(shù)矩陣、字符串?dāng)?shù)組、復(fù)數(shù)向量。細胞數(shù)組通常由由創(chuàng)建,其數(shù)據(jù)通過數(shù)組下標(biāo)引用。創(chuàng)建,其數(shù)據(jù)通過數(shù)組下標(biāo)引用。 2結(jié)構(gòu)數(shù)組結(jié)構(gòu)數(shù)組 例例2-9 結(jié)構(gòu)數(shù)組是根據(jù)屬性名組織起來的不同類型數(shù)據(jù)集合,屬結(jié)構(gòu)數(shù)組是根據(jù)屬性名組織起來的不同類型數(shù)據(jù)集合,屬性可以包含不同數(shù)據(jù)類型,結(jié)構(gòu)數(shù)組數(shù)據(jù)通過屬性名來引性可以包含不同數(shù)據(jù)類型,結(jié)構(gòu)數(shù)組數(shù)據(jù)通過屬性名來引用。用。s = struct(field1, , field2, , .) 2.3 運算符_1 算術(shù)運算符算術(shù)運算符

21、算術(shù)運算符算術(shù)運算符 算術(shù)加、減、乘及乘方與傳統(tǒng)的基本相同;算術(shù)加、減、乘及乘方與傳統(tǒng)的基本相同; 點運算點運算( (點乘、點乘方、點左除與點右除點乘、點乘方、點左除與點右除) )是指元素點對點是指元素點對點運算,要求參與運算變量結(jié)構(gòu)相似。運算,要求參與運算變量結(jié)構(gòu)相似。 除法運算:除法運算:a/b=ab; (ax=b,x=ab)2.3 運算符_2 關(guān)系運算符,邏輯運算符關(guān)系運算符,邏輯運算符 ,邏輯函數(shù),邏輯函數(shù)2.3.2關(guān)系運算符關(guān)系運算符= = = = 例例 if (a(5)=1 & a(6)to S=char(T) %正整數(shù)矩陣正整數(shù)矩陣T轉(zhuǎn)換為字符串矩陣轉(zhuǎn)換為字符串矩陣S i

22、nt2str(A),num2str(A,k),num2str(A,format) eval(S),str2num (S)表示將字符串表示將字符串S轉(zhuǎn)化為數(shù)值。轉(zhuǎn)化為數(shù)值。2.3 運算符_4 字符串操作字符串操作例例例例2-21將數(shù)值矩陣將數(shù)值矩陣A轉(zhuǎn)換成字符串矩陣。轉(zhuǎn)換成字符串矩陣。 A =1.2 6.7 3.2; 5.5 9.5 7.8 算例代碼算例代碼 %例例2-21 A =1.2 6.7 3.2; 5.5 9.5 7.8; B1= int2str(A) B2=num2str(A,0) B3=num2str(A, %10.3f) % 3位有效位位有效位,10位長位長注意運行結(jié)果。注意運行結(jié)

23、果。2.3 運算符_5 字符串比較與求值字符串比較與求值3 字符串比較字符串比較 strcmp(str1,str2)表示將兩個字符串進行比較表示將兩個字符串進行比較 4 字符串求值字符串求值 inline(exr),inline(expr,arg1,arg2,.) inline(exr)表示將字符串表達式轉(zhuǎn)化為函數(shù)表達式表示將字符串表達式轉(zhuǎn)化為函數(shù)表達式 arg1,arg2,.為字符串,其作用是定義變量為字符串,其作用是定義變量 % 例例2-24 f=inline(5*sin(x)+3*cos(y),x,y) subs(f, x,1);2.3 運算符_6 字符串比較與求值字符串比較與求值 如果

24、其中的字符串要用具體數(shù)值代替,可以使用命令如果其中的字符串要用具體數(shù)值代替,可以使用命令subs。使用命令使用命令subs時不能同時替換多個變量、一次只能替換一個變時不能同時替換多個變量、一次只能替換一個變量,見下例。量,見下例。 例例 計算計算f=inline(5*sin(x)+3*cos(y),x,y)當(dāng)當(dāng)x=1、y=2時的數(shù)值。時的數(shù)值。 syms x y; f=inline(5*sin(x)+3*cos(y),x,y); A1=subs(f,x,1);A2=subs(A1,y,2);2.4 m文件文件_1 MATLAB中文件形式:中文件形式:.m .fig .mdl m文件文件“.m”

25、分命令文件和函數(shù)文件兩種。分命令文件和函數(shù)文件兩種。 2.4.1 命令文件命令文件 例例2-25 沒有輸入?yún)?shù)和輸出參數(shù)、只是命令行的組合沒有輸入?yún)?shù)和輸出參數(shù)、只是命令行的組合. 命令文件最好保存在命令文件最好保存在MATLAB7works子目錄(工作目錄)下子目錄(工作目錄)下(或非中文目錄下或非中文目錄下). 文件名命名與變量命名類似文件名命名與變量命名類似,文件名與內(nèi)置函數(shù)及工具文件名與內(nèi)置函數(shù)及工具箱函數(shù)不應(yīng)重名、與命令文件及工作空間中的變量也不應(yīng)箱函數(shù)不應(yīng)重名、與命令文件及工作空間中的變量也不應(yīng)重名重名(最好不用中文名最好不用中文名). 2.4 m文件文件_22.4.2 函數(shù)文件函數(shù)文件函數(shù)文件一般包括:函數(shù)文件一般包括: 函數(shù)定義行函數(shù)定義行: function 輸出

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論