




已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章 MATLAB 程序設(shè)計(1),MATLAB 7.X程序設(shè)計,2/40,主要內(nèi)容:,關(guān)系運算和邏輯運算規(guī)則; 常用的邏輯函數(shù); 函數(shù)文件的定義和調(diào)用; 數(shù)據(jù)文件的讀寫。,MATLAB 7.X程序設(shè)計,3/40,3.1關(guān)系運算,3.1.1 概述 關(guān)系運算表達式的計算結(jié)果是一個由0和1組成的邏輯數(shù)組(logical array),在數(shù)組中用1表示真,0表示假。,MATLAB 7.X程序設(shè)計,4/40,3.1.2 關(guān)系運算符,6種關(guān)系運算符 (大于) = (大于或等于) = (等于) = (不等于),MATLAB 7.X程序設(shè)計,5/40,3.1.3 關(guān)系運算規(guī)則,關(guān)系運算符的運算法則為: 1 當(dāng)兩個比較量是標量時,直接比較兩數(shù)的大小。若關(guān)系成立,關(guān)系表達式結(jié)果為1,否則為0。 2 當(dāng)參與比較的量是兩個同型的矩陣時,比較是對兩矩陣相同位置的元素按標量關(guān)系運算規(guī)則逐個進行,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個與原矩陣同型的矩陣,它的元素由0或1組成。,MATLAB 7.X程序設(shè)計,6/40,3 當(dāng)參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關(guān)系運算規(guī)則逐個比較,并給出元素比較結(jié)果。最終的關(guān)系運算的結(jié)果是一個與原矩陣同型的矩陣,它的元素由0或1組成。 4 對于復(fù)數(shù),、=,僅對參加比較變量的實部進行比較,= = 和 = ,則同時對實部和虛部進行比較。,MATLAB 7.X程序設(shè)計,7/40,例3-1 分析語句a=2+2=4的執(zhí)行結(jié)果,例3-2 分析語句 a=fate;b=cake;result=a=b的執(zhí)行結(jié)果。,MATLAB 7.X程序設(shè)計,8/40,例3-3 已知a=1 2 3 4;b1=3,b2=0.1 2.1 2.9 4.1,分析a與b1 ,b2的六種關(guān)系運算的結(jié)果。,MATLAB 7.X程序設(shè)計,9/40,3.1.4 關(guān)系運算的應(yīng)用,1 find函數(shù) 函數(shù)find函數(shù)的格式為:,indices = find(X) 功能:返回數(shù)組X的非零元素的序號,如無非零元素,返回空數(shù)組。,i,j = find(X) 功能:返回數(shù)組X的非零元素的行號和列號,此格式很適合稀疏數(shù)組。,i,j,v = find(X) 功能:返回數(shù)組X的非零元素的行號、列號以及列向量。,MATLAB 7.X程序設(shè)計,10/40,例3-4 已知A=4,-65,-54,0,6;56,0,67, - 45,0,分析下列語句的功能。,find(A4) %找出大于4的元素的序號 i j=find(A,1) %找出一個不為零的元素的行號、列號 i j=find(A,1,first) %找出第一個不為零的元素的行號、列號 i j=find(A,1,last) %找出最后一個不為零的元素的行號、列號,MATLAB 7.X程序設(shè)計,11/40,2 提取子數(shù)組,建立邏輯數(shù)組的函數(shù)logical的格式: logical(x) 功能:轉(zhuǎn)換數(shù)組x為邏輯數(shù)組,MATLAB 7.X程序設(shè)計,12/40,例3-5 演示用邏輯數(shù)組來提取子數(shù)組 的方法,a=1 2;3 4;5 6; l1=logical(1 0 1) %給出邏輯向量l1 l2=logical(1 1 0) %給出邏輯向量l2 a(l1,l2) %提取a的部分元素,即1、3行且1、2列的元素,MATLAB 7.X程序設(shè)計,13/40,例3-6 建立任意的33的矩陣,并求 出能被3整除的元素。,A=1 0 3 ;2 9 -1;-3 -9 0; %生成33的矩陣A P=rem(A,3)=0 %判斷A的元素是否可以被3整除 A(P) %求出被3整除的元素 如果求上述矩陣中能被5整除的元素呢? P=rem(A,5)=0,MATLAB 7.X程序設(shè)計,14/40,例3-7 求三階魔方矩陣中絕對值大于7的元素。,a=magic(3); 方法1 x=abs(a)7;y=abs(b)7; %判斷a、 b元素是否絕對值大于7 a(x),b(y) %求出絕對值大于7的元素 方法2: 應(yīng)用find函數(shù) a=magic(3);b=magic(4); x=find(abs(a)7),y=find(abs(b)7),MATLAB 7.X程序設(shè)計,15/40,3.2 邏輯運算,3.2.1 邏輯運算符和運算法則,5種邏輯運算符: & (與) | (或) (非) & (先決與) | (先決或),MATLAB 7.X程序設(shè)計,16/40,邏輯運算的運算法則為:,1) 在邏輯運算中,確認非零元素為真,用1 表示,零元素為假,用0表示。 2) 設(shè)參與邏輯運算的是兩個標量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。,MATLAB 7.X程序設(shè)計,17/40,&(先決與) 當(dāng)該邏輯運算符的左邊為1(真)時,才繼續(xù)執(zhí)行該符號右邊的運算。 | (先決或) 當(dāng)邏輯運算符的左邊為1(真)時,就不需要繼續(xù)執(zhí)行該符號右邊的運算,而立即得出該邏輯運算結(jié)果為1(真);否則,就要繼續(xù)執(zhí)行該符號右邊的運算。注意:&(先決與)和| (先決或)對標量計算無意義。,MATLAB 7.X程序設(shè)計,18/40,3) 若參與邏輯運算的是兩個同型矩陣,那么運算將對矩陣相同位置上的元素按標量規(guī)則逐個進行。最終運算結(jié)果是一個與原矩陣同型的矩陣,其元素由1或0組成。 4) 若參與邏輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元素之間按標量規(guī)則逐個進行。最終運算結(jié)果是一個與矩陣同型的矩陣,其元素由1或0組成。 5) 邏輯非是單目運算符,也服從矩陣運算規(guī)則。,MATLAB 7.X程序設(shè)計,19/40,例3-8 求三階和四階的魔方矩陣中絕對值大于7、小于10的元素及元素的數(shù)目。,方法1 a=magic(3);b=magic(4); %生成三階和四階的魔方矩陣 x=abs(a)7 %判斷a、 b元素是否絕對值大于7、小于10 a(x),b(y) %求出絕對值大于7、小于10的元素 length(a(x),length(b(y) %求出絕對值大于7、小于10的元素的數(shù)目,MATLAB 7.X程序設(shè)計,20/40,x=find(abs(a)7&abs(a)7&abs(b)10) length(x) length(y) a(x) b(y),方法2 應(yīng)用find函數(shù),MATLAB 7.X程序設(shè)計,21/40,3.2.2 邏輯函數(shù),1 關(guān)系邏輯函數(shù) 1) any any(x) 如果向量x中的有一個元素為非零值,那么返回1;否則,返回0。 any(A) 對矩陣A進行列運算,根據(jù)相應(yīng)列是否所有元素都為非零值,返回一個元素為1和0的行向量。 2)all all(x) 如果向量x中所有的元素都是非零值,那么返回1;否則,返回0。 all(A) 對矩陣A進行列操作,根據(jù)相應(yīng)列是否包含非零元素,返回元素為1和0的一個行向量。,MATLAB 7.X程序設(shè)計,22/40,2 特殊數(shù)據(jù)判斷函數(shù),常用的特殊數(shù)據(jù)判斷函數(shù): isinf(A) 返回一個與A同型的數(shù)組,該數(shù)組元素的值根據(jù)A的相應(yīng)位置元素的值為無窮大inf時設(shè)置為1,否則為0。 isnan(A) 返回一個與A同型的數(shù)組,該數(shù)組元素的值根據(jù)A的相應(yīng)位置元素的值為NaN 時設(shè)置為1,否則為0。 isfinite(A) 返回一個與A同型的數(shù)組,該數(shù)組元素的值根據(jù)A的相應(yīng)位置元素的值為有限值時設(shè)置為1,否則為0。,MATLAB 7.X程序設(shè)計,23/40,當(dāng)a=pi NaN Inf -Inf時,分析下列語句的執(zhí)行結(jié)果,isinf (a) isnan (a) isfinite (a),MATLAB 7.X程序設(shè)計,24/40,例3-10 當(dāng)A=-6,NaN,Inf,5;-Inf,-pi, eps,0 時,分析下列語句的執(zhí)行結(jié)果。,all(A) all(all(A) any(A) any(any(A) isnan(A) isinf(A) isfinite(A),MATLAB 7.X程序設(shè)計,25/40,3 數(shù)組類型函數(shù),常用的數(shù)據(jù)類型函數(shù)如下: islogical(X) 如果X是邏輯數(shù)組,則返回1;否則,返回0 issparse(S) 如果S是稀疏數(shù)組,則返回1;否則,返回0 isreal(A) 如果A是一個不帶虛部的實矩陣,則返回1;否則,返回零。 isempty(A) 如果A是一個空數(shù)組,則返回1;否則返回0。,MATLAB 7.X程序設(shè)計,26/40,isequal(A,B) 如果A和B是同型的,并且數(shù)組的元素也相同,則返回1;否則返回0。 isscalar(S) 如果S是1 x 1的矩陣(標量),則返回1;否則返回0。 isvector(V) 如果V 是1 x n的矩陣(行向量)或n x 1的矩陣(列向量),則返回1;否則返回0。 isnumeric (A) 如果A是數(shù)值數(shù)組,則返回1;否則返回0。 isinteger(A) 如果A是整數(shù)型數(shù)值數(shù)組,則返回1;否則返回0。,MATLAB 7.X程序設(shè)計,27/40,isfloat(A) 如果A是浮點型數(shù)值數(shù)組,則返回1;否則返回0。 ischar(s) 判斷s是否為字符串,返回1表示為字符串;否則,返回0。 isletter(s1) 在逐個字符的基礎(chǔ)上比較字符的類別是否為字母,返回1表示為字母。 iscell(C) 判斷C 是否為元胞數(shù)組,如果是,返回1;否則返回0。 isstruct(S) 如果S是構(gòu)架數(shù)組,返回1;否則,返回0。,MATLAB 7.X程序設(shè)計,28/40,例3-10 分析數(shù)據(jù)類型函數(shù)構(gòu)成語句的執(zhí) 行結(jié)果。,a=eye(4);islogical(a),b=logical(a);islogical(b) b=speye(4);issparse(b) a=ones(4);isreal(a) isfloat(single(pi) isfloat(double(pi) isfloat(int8(3) s=string;ischar(s),MATLAB 7.X程序設(shè)計,29/40,3.2.3 運算符優(yōu)先級,MATLAB中各種運算符的優(yōu)先級如下: (矩陣轉(zhuǎn)置)、(矩陣冪)和.(數(shù)組轉(zhuǎn)置)、.(數(shù)組冪) (邏輯非) *(乘)、/(左除)、(右除)和.*(點乘)、./(點左除)、.(點右除) +、-(加減) : (冒號) 、=、= &(邏輯與) |(邏輯或) &(先決與) |(先決或),MATLAB 7.X程序設(shè)計,30/40,3.3 M文件,3.3.1 M文件概述 用MATLAB語言編寫的程序,稱為M文件。 M文件可以根據(jù)調(diào)用方式的不同分為兩類: 命令文件和函數(shù)文件。 兩種工作方式: 交互式的命令行工作方式和M文件的程序工作方式。,MATLAB 7.X程序設(shè)計,31/40,3.3.2 M文件的建立,1 建立新的M文件 為建立新的M文件,啟動MATLAB文本編輯器有3種方法: 1) 菜單操作。 2) 命令操作。 3) 命令按鈕操作。,MATLAB 7.X程序設(shè)計,32/40,3.4 分支語句,3.4.1 if 結(jié)構(gòu),格式1: if 條件 語句組 end,MATLAB 7.X程序設(shè)計,33/40,格式2: if 條件 語句組1 else 語句組2 end,MATLAB 7.X程序設(shè)計,34/40,格式3: if 條件1 語句組1 elseif 條件2 語句組2 elseif 條件m 語句組m else 語句組m+1 end,MATLAB 7.X程序設(shè)計,35/40,例3-12 計算分段函數(shù) 的值。,MATLAB 7.X程序設(shè)計,36/40,3.4.2 switch-case結(jié)構(gòu),一般switch-case語句格式為:,switch 表達式 case 值1 語句組1 case 值2 語句組2 case 值m 語句組m otherwise 語句組m+1 end,MATLAB 7.X程序設(shè)計,37/40,例 3-13 求分段函數(shù) 的值。,MATLAB 7.X程序設(shè)計,38
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 維修電工技師試題及答案
- 網(wǎng)店裝修操作試題及答案
- 外科臨床試題及答案
- 2025年辦公軟件供應(yīng)商協(xié)議
- 2025年銀行業(yè)務(wù)人員培訓(xùn)與發(fā)展協(xié)議
- 2025年權(quán)益轉(zhuǎn)讓策劃補充協(xié)議范本
- 2025年農(nóng)村經(jīng)濟合作社股份互轉(zhuǎn)協(xié)議
- 2025年酒店預(yù)訂服務(wù)合作協(xié)議
- 2025年合作策劃協(xié)議書官方范本
- 合同管理的全流程管控策略
- DLT 1051-2019電力技術(shù)監(jiān)督導(dǎo)則
- 公開課三角形面積課件
- 第一課學(xué)會使用栽培工具
- GB/T 43316.6-2023塑料耐環(huán)境應(yīng)力開裂(ESC)的測定第6部分:慢應(yīng)變速率法
- 軟件工程大作業(yè)樣本
- 管廊施工方案范本
- 追及和相遇問題專題
- 北師大版小學(xué)數(shù)學(xué)二年級下冊第7單元《奧運開幕》練習(xí)試題
- 高考英語分層詞匯1800(適合藝考生使用)
- 市政工程質(zhì)量保修書
- 輸變電工程標準化施工作業(yè)卡變電工程
評論
0/150
提交評論