《matlab與數(shù)值分析課》全冊配套課件3_第1頁
《matlab與數(shù)值分析課》全冊配套課件3_第2頁
《matlab與數(shù)值分析課》全冊配套課件3_第3頁
《matlab與數(shù)值分析課》全冊配套課件3_第4頁
《matlab與數(shù)值分析課》全冊配套課件3_第5頁
已閱讀5頁,還剩621頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《matlab與數(shù)值分析課》全冊配套課件3Matlab與數(shù)值分析幾點(diǎn)要求:記好課堂筆記保證課堂紀(jì)律及時完成作業(yè)和實(shí)驗(yàn)按時上課,不遲到早退1.MATLAB軟件平臺及編程第一章matlab概論(2學(xué)時)MATLAB軟件平臺簡介MATLAB的基本操作要求:熟悉和了解MATLAB軟件平臺,掌握MATLAB基本操作。1.MATLAB軟件平臺及編程第二章matlab基本知識(4學(xué)時)

(2.1-2.3)MATLAB的數(shù)組與矩陣符號矩陣與符號運(yùn)算多項(xiàng)式及其運(yùn)算1.MATLAB軟件平臺及編程第二章matlab編程(續(xù))(2學(xué)時)(2.4)M文件及函數(shù)編寫程序結(jié)構(gòu)程序終止、異常處理和調(diào)試1.MATLAB軟件平臺及編程第三章MATLAB數(shù)據(jù)的圖形表示

(2學(xué)時)(3.1-3.2)MATLAB二維繪圖基本二維繪圖;特殊的二維繪圖函數(shù);填充多邊形。MATLAB三維繪圖三維圖形的基本函數(shù);繪制三維折線及曲線;繪制三維網(wǎng)格曲面。1.MATLAB軟件平臺及編程補(bǔ)充:Simulink建模與仿真

(4學(xué)時)Simulink的基本操作與模型窗口模型創(chuàng)建與系統(tǒng)仿真子系統(tǒng)創(chuàng)建與封裝運(yùn)行Simulink模型2.數(shù)值分析基礎(chǔ)理論與算法第四章數(shù)值計(jì)算的基本概念(3學(xué)時)誤差與有效數(shù)字計(jì)算機(jī)計(jì)算的幾個問題算法的穩(wěn)定性問題算法設(shè)計(jì)原則2.數(shù)值分析基礎(chǔ)理論與算法第五章線性方程組的數(shù)值方法(6學(xué)時)(教材第八、第九章)高斯消元法矩陣分解向量范數(shù)與矩陣范數(shù)Jacobi迭代法方程組的病態(tài)問題與誤差分析方陣的特征值和特征向量的計(jì)算2.數(shù)值分析基礎(chǔ)理論與算法第六章函數(shù)的數(shù)值逼近(5學(xué)時)(教材第4章)代數(shù)多項(xiàng)式插值問題線性插值三次樣條插值曲線擬合的最小二乘法第七章數(shù)值積分(4學(xué)時)插值型求積公式復(fù)化求積公式高斯求積公式2.數(shù)值分析基礎(chǔ)理論與算法第八章常微分方程初值問題(4學(xué)時)(教材第六章)歐拉方法穩(wěn)定性與收斂性分析龍格-庫塔法2.數(shù)值分析基礎(chǔ)理論與算法第九章非線性方程求解

(3學(xué)時)(教材第七章)非線性方程的求解方法求解非線性方程數(shù)值解的MATLAB編程實(shí)現(xiàn)2.數(shù)值分析基礎(chǔ)理論與算法課程安排課程總結(jié)(1學(xué)時)上機(jī)實(shí)驗(yàn)(16學(xué)時)課程設(shè)計(jì)基本要求:針對MATLAB編程、Simulink建模與仿真和數(shù)值分析的基本理論應(yīng)用與仿真等相關(guān)內(nèi)容進(jìn)行課外的課題設(shè)計(jì)、實(shí)現(xiàn)和總結(jié)報告,提高學(xué)生對實(shí)際問題的分析能力、實(shí)現(xiàn)能力和文檔編寫能力。命題形式:任課教師命題學(xué)生自主命題課程考核方式:平時成績+上機(jī)實(shí)驗(yàn)+課程設(shè)計(jì)+課程考試(開卷)

平時成績+上機(jī)實(shí)驗(yàn)30%課程設(shè)計(jì)20%課程考試50%教材和參考書教材:《MATLAB數(shù)值計(jì)算方法》,張德豐等編著,機(jī)械工業(yè)出版社,2010。

參考資料:《數(shù)值計(jì)算引論》,白峰杉,高等教育出版社,2004。《科學(xué)計(jì)算引論—基于MATLAB的數(shù)值分析》,ShoichiroNakamura,電子工業(yè)出版社,2002?!稊?shù)值分析基礎(chǔ)教程》,李慶楊,高等教育出版社,2001。聯(lián)系方式Email:wangjg@

Call:61830486Address:科研樓B505房數(shù)值分析有什么用?

研究工作需要什么?研究活動的大致過程題目問題解決問題思路具體工作實(shí)驗(yàn)理論分析研究工作需要什么?模型分析結(jié)論分析工作仿真實(shí)驗(yàn)理論分析。。。數(shù)值計(jì)算數(shù)值計(jì)算數(shù)值分析輸入復(fù)雜問題或運(yùn)算

計(jì)算機(jī)近似解數(shù)值計(jì)算中的問題?例:地球的表面積有多大?數(shù)學(xué)工具數(shù)值分析講述的基本內(nèi)容如何把數(shù)學(xué)模型歸結(jié)為數(shù)值問題如何估計(jì)一個給定算法的精度分析誤差在計(jì)算過程中的積累和傳播如何構(gòu)造精度更高的算法如何使算法較少的占用存儲量如何分析算法的優(yōu)缺點(diǎn)例:蝴蝶效應(yīng)

——紐約的一只蝴蝶翅膀一拍,風(fēng)和日麗的北京就刮起大風(fēng)來了?!NYBJ病態(tài)問題/*ill-posedproblem*/例:線性方程組求解

則得不到解3x+y

73x+y13.001x+y12.999x+y1o線性方程組系數(shù)對解的敏感MATLAB工具軟件科學(xué)家和工程技術(shù)人員需要的研究工具

一種演算紙式的科學(xué)工程計(jì)算語言

MATLAB

1.核心部分:幾百個核心內(nèi)部函數(shù)。2.大量可選的工具箱。MATLAB的兩個主要部分MATLAB的基本組成MATLAB主程序

MATLAB語言、工作環(huán)境、句柄圖形、數(shù)學(xué)函數(shù)庫和應(yīng)用程序接口MATLAB的功能性工具箱

如:Simulink:動態(tài)系統(tǒng)仿真MATLAB的學(xué)科性工具箱如:signalprocessingtoolbox信號處理工具箱

例:用一個簡單命令求解線性系統(tǒng)

3x1+x2-x3=3.6x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4線性系統(tǒng)求解:(Ax=b)線性系統(tǒng)求解:(Ax=b)

輸入指令:A=[31-1;124;-145];b=[3.6;2.1;-1.4];x=A\b得到結(jié)果:x=1.4818-0.46060.3848x=linspace(0,6)y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;plot(x,y1,x,y2,x,y3)例、用簡短命令計(jì)算并繪制在0x6范圍內(nèi)的sin(2x)、sinx2、sin2x。常用專業(yè)性工具箱:ControlSystem最基本的控制工具箱SignalProcessing信號處理工具箱ImageProcessing圖像處理工具箱Communication通訊工具箱Higher-OrderSpectralAnalysis高階譜分析Spline樣條分析工具箱Statistics統(tǒng)計(jì)分析工具箱…MATLAB的部分通用命令clear:刪除內(nèi)存中的變量。clc:刪除工作窗口的內(nèi)容。clf:刪除圖形窗口的內(nèi)容。Matlab聯(lián)機(jī)幫助命令

help功能提供matlab大部分主題的在線幫助信息help

顯示help

主題一覽表helpplotxyz

顯示有關(guān)三維做圖指令幫助信息雖然help可以隨時提供幫助,但必須知道準(zhǔn)確的函數(shù)名稱。當(dāng)不能確定函數(shù)名稱時,help就無能為力了。

Lookfor函數(shù)—它可提供通過一般的關(guān)鍵詞,搜索出一組與之相關(guān)的命令lookforfourier

尋找含有傅立葉變換的相關(guān)指令變量查詢函數(shù)who與whos作用都是列出在matlab工作空間中已經(jīng)駐留的變量名清單不同的是whos在給出駐留變量的同時,還給出他們的維數(shù)及性質(zhì)Matlab的演示功能demo

在線演示MATLAB的數(shù)值運(yùn)算數(shù)據(jù)類型數(shù)據(jù)運(yùn)算:雙精度型(Double)支持的數(shù)據(jù)類型:數(shù)值型、字符型、單元型和結(jié)構(gòu)型

復(fù)數(shù)的表示:

i,j表示虛數(shù)單位

z=a+b*i或z=a+b*j當(dāng)b是一個數(shù)字時,可以表示為

z=a+bi或z=a+bjMATLAB的矩陣和數(shù)組運(yùn)算matlab具有出色的矩陣運(yùn)算能力,占據(jù)世界上數(shù)值計(jì)算軟件的重要地位矩陣的創(chuàng)建:創(chuàng)建矩陣的方法直接輸入法規(guī)則:矩陣元素必須用[]括住矩陣元素必須用逗號或空格分隔

在[]內(nèi)矩陣的行與行之間必須用分號分隔

矩陣元素可以是任何matlab表達(dá)式,可以是實(shí)數(shù),也可以是復(fù)數(shù),復(fù)數(shù)可用特殊函數(shù)I,j輸入

a=[123;456]x=[2pi/2;sqrt(3)3+5i]

矩陣元素:注意:只要是賦過值的變量,不管是否在屏幕上顯示過,都存儲在工作空間中,以后可隨時顯示或調(diào)用。變量名盡可能不要重復(fù),否則會覆蓋2.用matlab函數(shù)創(chuàng)建矩陣空陣[]—matlab允許輸入空陣,當(dāng)一項(xiàng)操作無結(jié)果時,返回空陣。rand——隨機(jī)矩陣eye——單位矩陣zeros——全部元素都為0的矩陣ones——全部元素都為1的矩陣向量的生成:利用冒號生成向量x=i:j如果I<J,生成以1為增量的向量如果I>J,生成X空向量x=i:j:kj是遞增步長矩陣的標(biāo)識和引用矩陣的子矩陣通過向量、標(biāo)量的標(biāo)識來引用和賦值。

1.向量標(biāo)識

A(u,v)2.“0~1”向量標(biāo)識A(L)例:找出4階魔方陣中大于10的元素。

A=16231351110897612414151規(guī)則:所有字符串都用單引號括起來;字符串中的每個字符都是字符串變量中的一個元素;字符串中的字符以ASCII碼形式存儲并區(qū)分大小字符串?dāng)?shù)組字符串?dāng)?shù)組的建立。

例:a=‘Thisisatest.’A=‘中國成都’

B=‘China‘’中國‘’’字符串?dāng)?shù)組的建立有效字符串連成長字符串多行字符串?dāng)?shù)組的直接創(chuàng)建利用字符串操作函數(shù)創(chuàng)建字符串?dāng)?shù)組利用轉(zhuǎn)換函數(shù)建立字符串?dāng)?shù)組字符串?dāng)?shù)組的元素標(biāo)識符號的作用:

“,”逗號的作用逗號可作為指令間的分隔符,matlab允許多條語句在同一行出現(xiàn)。

把matlab工作空間中一些有用的數(shù)據(jù)長久保存下來的方法是生成mat數(shù)據(jù)文件。

save——將工作空間中所有的變量存到matlab.mat文件中。數(shù)據(jù)的保存與獲取默認(rèn)文件名

savefilename——將工作空間中所有的變量存到filename.mat文件中。

savefilenameab——將工作空間中a和b變量存到filename.mat文件中。

load——loadfilename——loadfilenameab——mat文件是標(biāo)準(zhǔn)的二進(jìn)制文件,還可以ASCII碼形式保存。即可恢復(fù)保存過的所有變量矩陣加、減(+,-)運(yùn)算規(guī)則:相加、減的兩矩陣必須有相同的行和列兩矩陣對應(yīng)元素相加減。允許參與運(yùn)算的兩矩陣之一是標(biāo)量。標(biāo)量與矩陣的所有元素分別進(jìn)行加減操作。第二章矩陣運(yùn)算及應(yīng)用2.矩陣乘()運(yùn)算規(guī)則:A矩陣的列數(shù)必須等于B矩陣的行數(shù)標(biāo)量可與任何矩陣相乘。a=[123;456;780];b=[1;2;3];c=a*bc=143223

矩陣除的運(yùn)算在線性代數(shù)中沒有,有矩陣逆的運(yùn)算,在matlab中有兩種矩陣除運(yùn)算。矩陣左除:A\B

定義為:X=A\BAX=B

矩陣右除:B/A

定義為:X=B/AXA=B(B/A)’=(A’\B’)

a^p——a自乘p次冪

方陣整數(shù)3.矩陣乘方當(dāng)p為正整數(shù)時,表示方陣自乘p次;當(dāng)p為負(fù)整數(shù)時,表示方陣自乘p次后的逆;當(dāng)p為零時,為方陣同維的單位陣。

a=[1,2,3;4,5,6;7,8,9];a^2ans=303642668196102126150inv——矩陣求逆det——行列式的值eig——矩陣的特征值diag——對角矩陣’——矩陣轉(zhuǎn)置sqrt——矩陣開方4.矩陣的其它運(yùn)算

數(shù)組運(yùn)算指元素對元素的算術(shù)運(yùn)算,與通常意義上的由符號表示的線性代數(shù)矩陣運(yùn)算不同數(shù)組加減(.+,.-)a.+ba.-b數(shù)組運(yùn)算

對應(yīng)元素相加減(與矩陣加減等效)2.數(shù)組乘除(

,./,.\)ab——a,b兩數(shù)組必須有相同的行和列兩數(shù)組相應(yīng)元素相乘。a=[123;456;789];b=[246;135;7910];a.*bans=281841530497290a=[123;456;789];b=[246;135;7910];a*bans=253746558510985133172

a./b=b.\aa.\b=b./aa./b=b.\a—都是a的元素被b的對應(yīng)元素除a.\b=b./a—都是b的元素被a的對應(yīng)元素除例:a=[123];b=[456];c1=a.\b;c2=b./ac1=4.00002.50002.0000c2=4.00002.50002.0000——

給出a,b對應(yīng)元素間的商.例:a=[123];b=[456];z=a.^2z=1.004.009.00z=a.^bz=1.0032.00729.003.數(shù)組乘方(.^)—元素對元素的冪關(guān)系操作和邏輯操作關(guān)系操作符:<、<=、>、>=、==(等于)、~=(不等于)關(guān)系運(yùn)算規(guī)則:兩個變量都是標(biāo)量,則結(jié)果為真(1)或假(0)。兩個變量都是數(shù)組,則必須大小相同,結(jié)果也是同樣大小的數(shù)組,數(shù)組的元素為0或1。關(guān)系操作一個數(shù)組和一個標(biāo)量,則把數(shù)組的每個元素分別與標(biāo)量比較,結(jié)果為與數(shù)組大小相同的數(shù)組,數(shù)組的元素為0或1。<、<=和>、>=,僅對參加比較變量的實(shí)部進(jìn)行比較,

==和~=,則同時對實(shí)部和虛部進(jìn)行比較。邏輯操作邏輯操作符:&(與)、|(或)、~(非)和xor(異或)。aba&ba|b~axor(a,b)000010010111100101111100運(yùn)算符優(yōu)先級'(矩陣轉(zhuǎn)置)、^(矩陣冪)和.'(數(shù)組轉(zhuǎn)置)、.^(數(shù)組冪)~(邏輯非)*(乘)、/(左除)、\(右除)和.*(點(diǎn)乘)、./(點(diǎn)左除)、.\(點(diǎn)右除)+、-(加減):(冒號)<、<=、>、>=、~=&(邏輯與)多項(xiàng)式的表示和創(chuàng)建在Matlab中,任意的多項(xiàng)式都是用一個行向量表示,將多項(xiàng)式的系數(shù)按降冪排列存放在行向量中。多項(xiàng)式p(x)=a0xn+a1xn-1+…+an-1x+an對應(yīng)的行向量為:P=[a0a1…an]。直接創(chuàng)建多項(xiàng)式例:p(x)=2x4+5x3-8x+3[250-83]通過根創(chuàng)建多項(xiàng)式poly其調(diào)用格式如下:P=poly(A)如A為向量,則P是多項(xiàng)式的系數(shù)行向量,該多項(xiàng)式的根A。注意:如A為n×n的矩陣,則P是一個長度為n+1的行向量,它是A的特征多項(xiàng)式的系數(shù);例:A=[6-86;100;020];p=poly(A),roots(p), D=eig(A)求根:roots

調(diào)用方式:

roots(A)注意:求根的精度問題:例:y=(x-1)6=x6-x5+15x4-20x3+15x2-6x+1a=[1-615-2015-61]a=1-615-2015-61>>roots(a)ans=1.0042+0.0025i1.0042-0.0025i1.0000+0.0049i1.0000-0.0049i0.9958+0.0024i0.9958-0.0024i多項(xiàng)式的基本運(yùn)算多項(xiàng)式的乘法conv多項(xiàng)式的乘法本質(zhì)上是多項(xiàng)式系數(shù)向量的卷積運(yùn)算。卷積的定義為

K

c(k)=a(i)b(k+1-i)i=1在Matlab,完成此功能的命令是conv:C=conv(a,b)。例:求a=x3+3x2+2x1+1和b=4x3+3x2+9x1+10的乘積。a=[1321]; b=[43910];c=conv(a,b)多項(xiàng)式的除法dconv多項(xiàng)式的除法的運(yùn)算實(shí)質(zhì)就是多項(xiàng)式系數(shù)的解卷積運(yùn)算。向量a對向量c進(jìn)行解卷積得到的商向量q和余向量r,滿足:

kc(k)-r(k)=a(i)q(k+1-i)i=1在Matlab,完成此功能的命令是dconv:[q,r]=dconv(c,a)其中:

c=conv(a,q)+r例:a=[1321];c=[4152647512910];[q,r]=deconv(c,a)多項(xiàng)式的加減對多項(xiàng)式所對應(yīng)的向量利用數(shù)組加減運(yùn)算規(guī)則執(zhí)行加減運(yùn)算。注:多項(xiàng)式所對應(yīng)的向量如果大小不相等,必須用0補(bǔ)齊。例:求a=x3+3x2+2x1+1和b=4x3+3x2+9x1+10的和與差。a=[1321]; b=[43910];c=a+b,c1=a-b,多項(xiàng)式的求導(dǎo)polyder

不僅可以計(jì)算單個多項(xiàng)式的導(dǎo)數(shù),還可以計(jì)算兩個多項(xiàng)式相乘和相除的導(dǎo)數(shù)。其調(diào)用方式如下:polyder(p):返回多項(xiàng)式系數(shù)向量p的導(dǎo)數(shù);polyder(a,b):返回多項(xiàng)式a*b的導(dǎo)數(shù);[q,d]=polyder(b,a):返回b/a的導(dǎo)數(shù),用q/d表示。其中q是結(jié)果的分子多項(xiàng)式,d是結(jié)果的分母多項(xiàng)式。例:求a=x3+3x2+2x1+1和b=4x3+3x2+9x1+10的乘和商的導(dǎo)數(shù)。a=[1321]; b=[43910];polyder(a,b)[q,d]=polyder(b,a)多項(xiàng)式的求值polyval在Matlab中,多項(xiàng)式求值有兩種方式:按數(shù)組規(guī)則和按矩陣規(guī)則計(jì)算多項(xiàng)式值。y=polyval(p,x):按數(shù)組規(guī)則運(yùn)算。用來計(jì)算多項(xiàng)式p在自變量x處的值,可以是數(shù)、向量和矩陣。如果x是向量或矩陣,則該命令將對x的每個元素計(jì)算p的值,結(jié)果大小和x的大小相同;y=polyvalm(p,x):按矩陣規(guī)則運(yùn)算。自變量x是一方陣。例:p=[23306]; x=[1-1];y=polyval(p,x)x=[-11;1-1]y1=polyval(p,x)y2=polyvalm(p,x)6.多項(xiàng)式的部分分式展開沒有多重根:

B(s)R(1)R(2)R(n)----=--------+--------+...+--------+K(s)A(s)s-P(1)s-P(2)s-P(n)有多重根時,則包含有:R(j)R(j+1)R(j+m-1)--------+------------+...+------------s-P(j)(s-P(j))^2(s-P(j))^m

在Matlab中完成此任務(wù)的指令是residue:[r,p,k]=residue(b,a):求b(s)/a(s)的部分分式展開,返回值r是留數(shù),p是極點(diǎn),k是整式向量,a,b分別是分母和分子;[b,a]=residue(r,p,k):將展開式還原為兩個多項(xiàng)式b(s)和a(s)相除的形式。例:a=[24582];b=[3583];[r,p,k]=residue(b,a)[bb,aa]=residue(r,p,k)特殊變量和常數(shù)非數(shù)(NaN或nan),非數(shù)的意思是:不是一個數(shù),指無效的數(shù)值??諗?shù)組,凡是某維長度為0或若干維長度均為0的數(shù)組都是空數(shù)組。特殊的變量熟悉MATLAB的工作環(huán)境熟練應(yīng)用MATLAB的幫助信息創(chuàng)建和修改矩陣符號的用法矩陣及數(shù)組運(yùn)算小結(jié):作業(yè):1.給出MATLAB幫助信息的使用方法。2.給出生成向量{}的指令。3.計(jì)算多項(xiàng)式的根。第三章MATLAB程序設(shè)計(jì)3.1M文件3.2程序控制結(jié)構(gòu)3.3函數(shù)文件3.4程序舉例3.5程序調(diào)試3.1M文件3.1.1M文件概述用MATLAB語言編寫的程序,稱為M文件。M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(ScriptFile)和函數(shù)文件(FunctionFile)。例分別建立命令文件和函數(shù)文件,將華氏溫度f轉(zhuǎn)換為攝氏溫度c。程序1:首先建立命令文件并以文件名f2c.m存盤。

clear;%清除工作空間中的變量

f=input('InputFahrenheittemperature:');c=5*(f-32)/9

然后在MATLAB的命令窗口中輸入f2c,將會執(zhí)行該命令文件,執(zhí)行情況為:

InputFahrenheittemperature:73c=22.77783.1M文件

程序2:首先建立函數(shù)文件f2c.m。

functionc=f2c(f)c=5*(f-32)/9

然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。

clear;y=input('InputFahrenheittemperature:');x=f2c(y)

輸出情況為:

InputFahrenheittemperature:70c=21.1111x=21.11113.1M文件3.1.2M文件的建立與打開

M文件是一個文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。1.建立新的M文件:啟動MATLAB文本編輯器有3種方法:

(1)菜單操作。從MATLAB主窗口的File菜單中選擇New菜單項(xiàng),再選擇M-file命令,屏幕上將出現(xiàn)文本編輯器窗口。

(2)命令操作。在MATLAB命令窗口輸入命令edit,啟動MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。

(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的NewM-File命令按鈕,啟動MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。3.1M文件2.打開已有的M文件:也有3種方法:

(1)菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對話框,在Open對話框中選中所需打開的M文件。在文檔窗口可以對打開的M文件進(jìn)行編輯修改,編輯完成后,將M文件存盤。

(2)命令操作。在MATLAB命令窗口輸入命令:edit文件名,則打開指定的M文件。

(3)命令按鈕操作。單擊MATLAB主窗口工具欄上的OpenFile命令按鈕,再從彈出的對話框中選擇所需打開的M文件。3.1M文件3.2程序控制結(jié)構(gòu)3.2.1順序結(jié)構(gòu)1.?dāng)?shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),可以使用input函數(shù)來進(jìn)行,該函數(shù)的調(diào)用格式為:

A=input(提示信息,選項(xiàng));其中提示信息為一個字符串,用于提示用戶輸入什么樣的數(shù)據(jù)。如果在input函數(shù)調(diào)用時采用's'選項(xiàng),則允許用戶輸入一個字符串。例如,想輸入一個人的姓名,可采用命令:

xm=input('What''syourname?','s');2.?dāng)?shù)據(jù)的輸出

MATLAB提供的命令窗口輸出函數(shù)主要是disp函數(shù),其調(diào)用格式為:

disp(輸出項(xiàng))

其中輸出項(xiàng)既可以為字符串,也可以為矩陣。3.2程序控制結(jié)構(gòu)例輸入x,y的值,并將它們的值互換后輸出。程序如下:

x=input('Inputxplease.');y=input('Inputyplease.');z=x;x=y;y=z;disp(x);disp(y);3.2程序控制結(jié)構(gòu)例求一元二次方程ax2+bx+c=0的根。程序如下:

a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);3.2程序控制結(jié)構(gòu)3.程序的暫停暫停程序的執(zhí)行可以使用pause函數(shù),其調(diào)用格式為:

pause(延遲秒數(shù))

如果省略延遲時間,直接使用pause,則將暫停程序直到用戶按任一鍵后程序繼續(xù)執(zhí)行。若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。3.2程序控制結(jié)構(gòu)3.2.2選擇結(jié)構(gòu)1.if語句:在MATLAB中,if語句有3種格式。(1)單分支if語句:

if條件語句組

end

當(dāng)條件成立時執(zhí)行語句組,執(zhí)行完之后繼續(xù)執(zhí)行if語句的后繼語句,若條件不成立,則直接執(zhí)行if語句的后繼語句。3.2程序控制結(jié)構(gòu)(2)雙分支if語句:

if條件語句組1else

語句組2end

當(dāng)條件成立時執(zhí)行語句組1,否則執(zhí)行語句組2,語句組1或語句組2執(zhí)行完后,再執(zhí)行if語句的后繼語句。3.2程序控制結(jié)構(gòu)例計(jì)算分段函數(shù)的值。程序如下:

x=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy3.2程序控制結(jié)構(gòu)(3)多分支if語句:

if條件1

語句組1elseif條件2

語句組2……elseif條件m

語句組melse

語句組nend3.2程序控制結(jié)構(gòu)例輸入一個字符,若為大寫字母則輸出其對應(yīng)的小寫字母;若為小寫字母則輸出其對應(yīng)的大寫字母;若為數(shù)字字符則輸出其對應(yīng)的數(shù)值;若為其他字符則原樣輸出。

c=input('請輸入一個字符','s');ifc>='A'&c<='Z'disp(char(abs(c)+abs('a')-abs('A')));elseifc>='a'&c<='z'disp(char(abs(c)-abs('a')+abs('A')));elseifc>='0'&c<='9'disp(abs(c)-abs('0'));elsedisp(c);end3.2程序控制結(jié)構(gòu)2.switch語句:根據(jù)表達(dá)式的取值不同分別執(zhí)行不同的語句,其語句格式為:

switch表達(dá)式

case表達(dá)式1

語句組1case表達(dá)式2

語句組2……case表達(dá)式m

語句組motherwise

語句組nend3.2程序控制結(jié)構(gòu)

當(dāng)表達(dá)式的值等于表達(dá)式1的值時,執(zhí)行語句組1,當(dāng)表達(dá)式的值等于表達(dá)式2的值時,執(zhí)行語句組2,…,當(dāng)表達(dá)式的值等于表達(dá)式m的值時,執(zhí)行語句組m,當(dāng)表達(dá)式的值不等于case所列的表達(dá)式的值時,執(zhí)行語句組n。任意一個分支的語句執(zhí)行完后,直接執(zhí)行switch語句的下一句。3.2程序控制結(jié)構(gòu)例某商場對顧客所購買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價格用price來表示):

price<200沒有折扣

200≤price<5003%折扣

500≤price<10005%折扣

1000≤price<25008%折扣

2500≤price<500010%折扣

5000≤price14%折扣輸入所售商品的價格,求其實(shí)際銷售價格。3.2程序控制結(jié)構(gòu)程序如下:price=input('請輸入商品價格');switchfix(price/100)case{0,1}%價格小于200rate=0;case{2,3,4}%價格大于等于200但小于500rate=3/100;casenum2cell(5:9)%價格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%價格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%價格大于等于2500但小于5000rate=10/100;otherwise%價格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實(shí)際銷售價格3.try語句:try語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。語句格式為:

try

語句組1catch

語句組2end3.2程序控制結(jié)構(gòu)例矩陣乘法運(yùn)算要求兩矩陣的維數(shù)相容,否則會出錯。先求兩矩陣的乘積,若出錯,則自動轉(zhuǎn)去求兩矩陣的點(diǎn)乘。程序如下:

A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%顯示出錯原因3.2程序控制結(jié)構(gòu)3.2.3循環(huán)結(jié)構(gòu)1.for語句:for語句的格式為

for循環(huán)變量=表達(dá)式1:表達(dá)式2:表達(dá)式3

循環(huán)體語句

end

其中表達(dá)式1的值為循環(huán)變量的初值,表達(dá)式2的值為步長,表達(dá)式3的值為循環(huán)變量的終值。步長為1時,表達(dá)式2可以省略。3.2程序控制結(jié)構(gòu)例一個三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。程序如下:

form=100:999m1=fix(m/100);%求m的百位數(shù)字

m2=rem(fix(m/10),10);%求m的十位數(shù)字

m3=rem(m,10);%求m的個位數(shù)字

ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend3.2程序控制結(jié)構(gòu)3.2程序控制結(jié)構(gòu)例當(dāng)n=100時,求y的值。程序如下:

y=0;n=100;fori=1:ny=y+1/(2*i-1);endyfor語句更一般的格式為:

for循環(huán)變量=矩陣表達(dá)式循環(huán)體語句

end

執(zhí)行過程是依次將矩陣的各行元素賦給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢。3.2程序控制結(jié)構(gòu)例寫出下列程序的執(zhí)行結(jié)果。

s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;enddisp(s');3.2程序控制結(jié)構(gòu)2.while語句:while語句的執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。一般格式為:

while(條件)

循環(huán)體語句

end3.2程序控制結(jié)構(gòu)例從鍵盤輸入若干個數(shù),當(dāng)輸入0時結(jié)束輸入,求這些數(shù)的平均值和它們的和。程序如下:

sum=0;cnt=0;val=input('Enteranumber(endin0):');while(val~=0)sum=sum+val;cnt=cnt+1;val=input('Enteranumber(endin0):');endif(cnt>0)summean=sum/cntend3.2程序控制結(jié)構(gòu)3.break語句和continue語句:與循環(huán)結(jié)構(gòu)相關(guān)的語句還有break語句和continue語句。它們一般與if語句配合使用。

break語句用于終止循環(huán)的執(zhí)行。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。

continue語句控制跳過循環(huán)體中的某些語句。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。3.2程序控制結(jié)構(gòu)例求[100,200]之間第一個能被21整除的整數(shù)。程序如下:

forn=100:200ifrem(n,21)~=0continueendbreakendn3.2程序控制結(jié)構(gòu)4.循環(huán)的嵌套:如果一個循環(huán)結(jié)構(gòu)的循環(huán)體又包括另一個循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或多重循環(huán)結(jié)構(gòu)。例若一個數(shù)等于它的各個真因子之和,則稱該數(shù)為完數(shù),如6=1+2+3,所以6是完數(shù)。求[1,500]之間的全部完數(shù)。

form=1:500s=0;fork=1:m/2ifrem(m,k)==0s=s+k;endendifm==sdisp(m);endend3.2程序控制結(jié)構(gòu)3.3.1函數(shù)文件的基本結(jié)構(gòu)函數(shù)文件由function語句引導(dǎo),其基本結(jié)構(gòu)為:

function輸出形參表=函數(shù)名(輸入形參表)

注釋說明部分函數(shù)體語句其中以function開頭的一行為引導(dǎo)行,表示該M文件是一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸入形參為函數(shù)的輸入?yún)?shù),輸出形參為函數(shù)的輸出參數(shù)。當(dāng)輸出形參多于一個時,則應(yīng)該用方括號括起來。3.3函數(shù)文件例編寫函數(shù)文件求半徑為r的圓的面積和周長。函數(shù)文件如下:

function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圓半徑

%s圓面積

%p圓周長

%2004年7月30日編

s=pi*r*r;p=2*pi*r;3.3函數(shù)文件3.3.2函數(shù)調(diào)用函數(shù)調(diào)用的一般格式是:

[輸出實(shí)參表]=函數(shù)名(輸入實(shí)參表)

要注意的是,函數(shù)調(diào)用時各實(shí)參出現(xiàn)的順序、個數(shù),應(yīng)與函數(shù)定義時形參的順序、個數(shù)一致,否則會出錯。函數(shù)調(diào)用時,先將實(shí)參傳遞給相應(yīng)的形參,從而實(shí)現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。3.3函數(shù)文件例利用函數(shù)文件實(shí)現(xiàn)直角坐標(biāo)(x,y)與極坐標(biāo)(ρ,θ)之間的轉(zhuǎn)換。

1.函數(shù)文件tran.m:

function[rho,theta]=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);2.調(diào)用tran.m的命令文件main1.m:

x=input('Pleaseinputx=:');y=input('Pleaseinputy=:');[rho,the]=tran(x,y);rhotheta3.3函數(shù)文件

在MATLAB中,函數(shù)可以嵌套調(diào)用,即一個函數(shù)可以調(diào)用別的函數(shù),甚至調(diào)用它自身。一個函數(shù)調(diào)用它自身稱為函數(shù)的遞歸調(diào)用。例利用函數(shù)的遞歸調(diào)用,求n!

n!就是以遞歸的形式定義的,求n!需要求(n-1)!,這時可采用遞歸調(diào)用。遞歸調(diào)用函數(shù)文件factor.m如下:

functionf=factor(n)ifn<=1f=1;elsef=factor(n-1)*n;%遞歸調(diào)用求(n-1)!end3.3函數(shù)文件3.3.3函數(shù)參數(shù)的可調(diào)性在調(diào)用函數(shù)時,MATLAB用兩個永久變量nargin和nargout分別記錄調(diào)用該函數(shù)時的輸入實(shí)參和輸出實(shí)參的個數(shù)。只要在函數(shù)文件中包含這兩個變量,就可以準(zhǔn)確地知道該函數(shù)文件被調(diào)用時的輸入輸出參數(shù)個數(shù),從而決定函數(shù)如何進(jìn)行處理。3.3函數(shù)文件例nargin用法示例。函數(shù)文件examp.m:

functionfout=charray(a,b,c)ifnargin==1fout=a;elseifnargin==2fout=a+b;elseifnargin==3fout=(a*b*c)/2;end

命令文件mydemo.m:

x=[1:3];y=[1;2;3];examp(x)examp(x,y')examp(x,y,3)3.3.4全局變量與局部變量全局變量用global命令定義,格式為:

global變量名例全局變量應(yīng)用示例。建立函數(shù)文件wadd.m,該函數(shù)將輸入的參數(shù)加權(quán)相加。

functionf=wadd(x,y)globalALPHABETAf=ALPHA*x+BETA*y;

在命令窗口中輸入:

globalALPHABETAALPHA=1;BETA=2;s=wadd(1,2)3.3函數(shù)文件例Fibonacci數(shù)列定義如下:

f1=1f2=1fn=fn-1+fn-2(n>2)

求Fibonacci數(shù)列的第20項(xiàng)。3.4程序舉例A=ones(1,20);fori=3:20A(i)=A(i-1)+A(i-2);endA(20)例猜數(shù)游戲。首先由計(jì)算機(jī)產(chǎn)生[1,100]之間的隨機(jī)整數(shù),然后由用戶猜測所產(chǎn)生的隨機(jī)數(shù)。根據(jù)用戶猜測的情況給出不同提示,如猜測的數(shù)大于產(chǎn)生的數(shù),則顯示“High”,小于則顯示“Low”,等于則顯示“Youwon”,同時退出游戲。用戶最多可以猜7次。3.4程序舉例A=fix(100*rand(1));fori=1:7B=input('請輸入猜測值:');ifA>Bdisp('Low');elseifA<Bdisp('High');elsedisp('Youwon!');break;endend3.5.1程序調(diào)試概述一般來說,應(yīng)用程序的錯誤有兩類,一類是語法錯誤,另一類是運(yùn)行時的錯誤。語法錯誤包括詞法或文法的錯誤,例如函數(shù)名的拼寫錯、表達(dá)式書寫錯等。程序運(yùn)行時的錯誤是指程序的運(yùn)行結(jié)果有錯誤,這類錯誤也稱為程序邏輯錯誤。3.5程序調(diào)試3.5.2調(diào)試器1.Debug菜單項(xiàng)該菜單項(xiàng)用于程序調(diào)試,需要與Breakpoints菜單項(xiàng)配合使用。2.Breakpoints菜單項(xiàng)該菜單項(xiàng)共有6個菜單命令,主要用于在程序中設(shè)置和清除斷點(diǎn)。3.5程序調(diào)試MATLAB繪圖與程序設(shè)計(jì)

基本知識一

繪圖二維和三維基本繪圖命令Matlab圖形窗口Matlab有用于圖形輸出的專用窗口,稱為圖形窗口。所有的繪圖命令將把圖象輸出到當(dāng)前窗口,若在命令執(zhí)行前,當(dāng)前窗口已經(jīng)存在圖形,則原圖形將被新圖象覆蓋掉。二維平面圖形的繪制plot——最基本的二維圖形指令

plot的功能:

plot命令自動打開一個圖形窗口Figure

用直線連接相鄰兩數(shù)據(jù)點(diǎn)來繪制圖形根據(jù)圖形坐標(biāo)大小自動縮擴(kuò)坐標(biāo)軸,將數(shù)據(jù)標(biāo)尺及單位標(biāo)注自動加到兩個坐標(biāo)軸上,可自定坐標(biāo)軸,可把x,y軸用對數(shù)坐標(biāo)表示線性坐標(biāo)曲線plotplot(y):參數(shù)y為向量,以y的值為縱坐標(biāo),y的下標(biāo)為橫坐標(biāo)。例1:x=[0,0.48,0.84,1,0.91,0.6,0.14]plot(x)plot(x,y):參數(shù)x,y為向量,以x為橫坐標(biāo),以y為縱坐標(biāo)。注意:x,y的長度必須相等例:t=0:0.001:2*pi;y=cos(t); plot(t,y)plot(Y)參數(shù)Y為mⅹn的矩陣。該命令把矩陣Y轉(zhuǎn)化為長度為m的n個向量,然后對n個向量劃出n條線。例:y=[5448910;344582; 8579625;988967] plot(y)復(fù)向量式plot(Z):當(dāng)z為一個復(fù)向量時,該命令等價于plot(real(Y),imag(Y));其它情況忽略z的虛部。例:t=0:0.1:3*pi;x=t+i*cos(t);plot(x);figure;plot(t,x)綜合調(diào)用方式plot(x1,y1,x2,y2,…)該命令可以在同一窗口繪制多條曲線。例:t=0:0.1:3*pi;x=t+i*cos(t);plot(real(x),imag(x),t,x)三維繪圖可分為三個過程:生成平面網(wǎng)格點(diǎn)生成和繪制三維網(wǎng)格點(diǎn)處理三維表面。

三維曲面繪圖生成平面網(wǎng)格點(diǎn)

[X,Y]=meshgrid(x,y)x是區(qū)間[x0,xm]上劃分點(diǎn)組成的向量;y是區(qū)間[y0,yn]上劃分點(diǎn)組成的向量;X,Y是輸出變量矩陣,矩陣X的行向量都是x,矩陣y的列向量都是y。例:

[X,Y]=meshgrid(-2:2:2,-2:1:2)生成三維網(wǎng)格點(diǎn)mesh(x,y,z,c):x,y,z,c是同維矩陣x,y,z對應(yīng)確定空間上的網(wǎng)格點(diǎn)c為顏色矩陣;例: [X,Y]=meshgrid(-2:.2:2,-2:.2:2); Z=X.*exp(-X.^2-Y.^2); mesh(Z) 三維表面處理

對網(wǎng)格曲面的網(wǎng)格塊區(qū)域著色就得到實(shí)曲面。mesh命令僅對網(wǎng)格線著色,而對網(wǎng)格片著色使用surf命令。surf的使用方式與mesh相同。例: [X,Y]=meshgrid(-2:.2:2,-2:.2:2); Z=X.*exp(-X.^2-Y.^2); surf(Z); 函數(shù)contour繪制二維等高線。用戶可以指定等高線的條數(shù)、坐標(biāo)系的比例及某值上的等高線,兩者用法相同.等高線的繪制shadingfaceted—網(wǎng)格修飾,缺省方式shadingflat——去掉黑色線條,根據(jù)小方塊的值確定顏色shadinginterp——顏色整體改變,根據(jù)小方塊四角的值差補(bǔ)過度點(diǎn)的值確定顏色peaks(30);shadinginterp;colormap(hot)[X,Y,Z]=peaks(30);surfl(X,Y,Z)

shadinginterp;colormap(cool);axisoff透視與消隱p=peaks(30);mesh(p);hiddenon作業(yè):

繪出二元函數(shù)

的三維圖形。并根據(jù)你的興趣,對圖形做出適當(dāng)?shù)男揎棥?/p>

M文件類型命令文件(腳本文件script-file)函數(shù)文件(function-file)二

編程命令文件格式注解+運(yùn)行命令將matlab命令構(gòu)成的程序存儲成以m為擴(kuò)展名的文件,然后再執(zhí)行該程序文件,這種工作模式稱為命令文件模式。程序文件不能在指令窗口下建立,因?yàn)橹噶畲翱谥辉试S一次執(zhí)行一行上的一個或幾個語句。例:

%畫出花瓣

theta=-pi:0.01:pi;rho(1,:)=2*sin(5*theta).^2;polar(theta,rho(1,:))%極坐標(biāo)繪圖函數(shù)定義行文件的第一行,定義函數(shù)名,輸入輸出參數(shù)的數(shù)量和名稱。H1行幫助信息的第一行,緊跟定義行之后。函數(shù)說明H1行以后,函數(shù)主體以前的幫助信息。函數(shù)主體函數(shù)中進(jìn)行真正計(jì)算和輸出賦值等工作的代碼。注釋函數(shù)體中用‘%’引導(dǎo)的對程序的注釋。函數(shù)文件格式

函數(shù)文件的一般結(jié)構(gòu):例:functionk=rank(x)%RANK Numberoflinearlyindependentrowsorcolumns.% K=RANK(X)isthenumberofsingularvaluesofX% thatarelargerthanMAX(SIZE(X))*NORM(X)*EPS.% K=RANK(X,tol)isthenumberofsingularvaluesofXthat% arelargerthantol.% Copyright(c)1984-94byTheMathWorks,Inc.s=svd(x);if(nargin==1)tol=max(size(x))*max(s)*eps;endr=sum(s>tol);程序部分M文件的編輯環(huán)境

Matlab自身提供的M文件編輯器;一般的文字編輯器,如寫字板、記事本和Word等,保存為文本文件,后綴為.m。注:運(yùn)行m文件之前,必須將文件放在MATLAB的搜索路徑上

盡量使函數(shù)定義名與函數(shù)文件名一致。兩者不一致時,MATLAB將忽略函數(shù)定義行的函數(shù)定義名,而以保存文件名為準(zhǔn)。H1行做好用英文表達(dá),利于關(guān)鍵字查詢。MATLAB的搜索過程:例:假設(shè)MATLAB執(zhí)行指令cow1.檢查cow是否是變量名。2.是否是內(nèi)建函數(shù)(Built_inFunction)。3.是否是cow所在M文件的一個子函數(shù)。4.是否是cow所在M文件的一個私有函數(shù)。5.是否是當(dāng)前目錄上的文件。6.搜索路徑上是否有 cow存在。MATLAB的變量與表達(dá)式MATLAB的變量與類型變量命名規(guī)則變量名和函數(shù)名對字母的大小寫敏感;變量名的第一個字符必須是一個英文字母,最多可包括31個字符;變量名可由英文字母、數(shù)字和下劃線混合組成

;變量名中不得包含空格和標(biāo)點(diǎn),但可以由下連字符局部變量:具有函數(shù)內(nèi)部作用范圍全局變量:可在幾個函數(shù)和基本工作空間之間共享,具有全局作用范圍全局變量的聲明:

global變量名1變量名2…

變量名間用空格分離。全局變量在使用前必須在MATLAB工作空間中申明,而在某個具體的MATLAB函數(shù)中如果想用到該全局變量時,也必須在函數(shù)中申明。由于全局變量損害函數(shù)的封閉性,因此不提倡使用全局變量。局部變量和全局變量永久變量

又稱預(yù)定義變量(PredefinedVariable)

ans;eps;realmax;realmin;pi;i,j;inf;NaN;compter;flops;version;注:盡可能不對永久變量重新賦值,以免產(chǎn)生混淆MATLAB基本表達(dá)式

表達(dá)式變量=表達(dá)式

MATLAB書寫表達(dá)式的規(guī)則與“手寫算式”幾乎相同。例:

20.3+3.9*sin(x);

y=sin(x)+cos(x);[x,y,z]=peaks字符串?dāng)?shù)組、單元數(shù)組和結(jié)構(gòu)數(shù)組數(shù)據(jù)類型:單元型cell數(shù)組字符型char結(jié)構(gòu)型struct數(shù)值型numeric存儲型Storage(包括int8,unit8,int16,unit16,int32,unit32)雙精度型double稀疏型sparse用戶對象userobject

最常用的數(shù)據(jù)類型只有雙精度型和字符型,其他數(shù)據(jù)類型只在一些特殊條件下使用MATLAB程序結(jié)構(gòu)順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)分支結(jié)構(gòu)順序結(jié)構(gòu)順序結(jié)構(gòu)就是依照順序執(zhí)行程序的各條語句。語句在程序文件中的位置反映了程序的執(zhí)行順序。循環(huán)結(jié)構(gòu)for-end循環(huán)語法為:

forx=array

可執(zhí)行語句

end

循環(huán)執(zhí)行的次數(shù)為固定的。循環(huán)次數(shù)由數(shù)組(array)的列數(shù)決定。例:

forii=1:10;x(ii)=ii;end;x=12345678910說明:for循環(huán)不會因?yàn)樵谘h(huán)體內(nèi)對循環(huán)變量重新賦值而終止;for循環(huán)結(jié)構(gòu)可按需要嵌套使用。技巧:為得到高效代碼,盡量提高代碼的向量化程度,避免使用循環(huán)結(jié)構(gòu);為得到最快的運(yùn)算速度,在循環(huán)指令前盡量對數(shù)組進(jìn)行預(yù)定義例:利用for循環(huán)求1!+2!+3!++5!的值

sum=0;fori=1:5pdr=1;fork=1:ipdr=pdr*k;endsum=sum+pdr;endsum=153while-end循環(huán)

while循環(huán)將循環(huán)體中的語句循環(huán)執(zhí)行不定次數(shù)。

語法為:

while表達(dá)式循環(huán)體語句

end

表達(dá)式一般是由邏輯運(yùn)算和關(guān)系運(yùn)算以及一般運(yùn)算組成的,以判斷循環(huán)的進(jìn)行和停止;只要表達(dá)式的值非0,繼續(xù)循環(huán);直到表達(dá)式值為0,循環(huán)停止。例:用while循環(huán)求1~100間整數(shù)的和

sum=0;i=1;whilei<=100sum=sum+i;i=i+1;endsumsum=5050

分支結(jié)構(gòu)if-else-end分支結(jié)構(gòu)if—else—end語句有3種形式

if表達(dá)式執(zhí)行語句

endif表達(dá)式———

是語句1else————

否語句2end

if表達(dá)式1

語句1elseif表達(dá)式2

語句2elseif表達(dá)式3

語句3

·

·

·

else

語句nend這種結(jié)構(gòu)實(shí)現(xiàn)了一種多路選擇,比較復(fù)雜。可替代一般高級語言

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論