溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MATLAB編程與應(yīng)用系列-第3章 矩陣運(yùn)算(3)

發(fā)布時(shí)間:2020-06-27 08:25:02 來源:網(wǎng)絡(luò) 閱讀:384 作者:德特?cái)?shù)據(jù) 欄目:開發(fā)技術(shù)

本系列教程來源于出版設(shè)計(jì)《基于MATLAB編程基礎(chǔ)與典型應(yīng)用書籍》,如涉及版權(quán)問題,請(qǐng)聯(lián)系:156204968@qq.com。 出版社:人民郵電出版社, 頁數(shù):525。

本系列教程目前基于MATLABR2006a,可能對(duì)于更高級(jí)版本的功能和函數(shù)有差異,教程中如有問題,請(qǐng)聯(lián)系:156204968@qq.com

###3.1.8 矩陣和數(shù)組運(yùn)算比較
在進(jìn)行矩陣和數(shù)組運(yùn)算的時(shí)候,要認(rèn)識(shí)到矩陣和數(shù)組類似運(yùn)算的區(qū)別,兩種運(yùn)算指令形式和實(shí)質(zhì)內(nèi)涵的異同見表3.3。其中S為標(biāo)量,A、B為矩陣。
表3.3 矩陣和數(shù)組運(yùn)算對(duì)比表
數(shù)組運(yùn)算 矩陣運(yùn)算
命令 含義 命令 含義
A+B 對(duì)應(yīng)元素相加 A+B 與數(shù)組運(yùn)算相同
A-B 對(duì)應(yīng)元素相減 A-B 與數(shù)組運(yùn)算相同
S.*B 標(biāo)量S分別與B元素的積 S*B 與數(shù)組運(yùn)算相同
A.*B 數(shù)組對(duì)應(yīng)元素相乘 A*B 內(nèi)維相同矩陣的乘積
S./B S分別被B的元素左除 S\B B矩陣分別左除S
A./B A的元素被B的對(duì)應(yīng)元素除 A/B 矩陣A右除B即A的逆陣與B相乘
B.\A 結(jié)果一定與上行相同 B\A A左除B(一般與上行不同)
A.^S A的每個(gè)元素自乘S次 A^S A矩陣為方陣時(shí),自乘S次
A.^S S為小數(shù)時(shí),對(duì)A各元素分別求非整數(shù)冪,得出矩陣 A^S S為小數(shù)時(shí),方陣A的非整數(shù)乘方
S.^B 分別以B的元素為指數(shù)求冪值 S^B B為方陣時(shí),標(biāo)量S的矩陣乘方
A.’ 非共軛轉(zhuǎn)置,相當(dāng)于conj(A’) A’ 共軛轉(zhuǎn)置
exp(A) 以自然數(shù)e為底,分別以A的元素為指數(shù)求冪 expm(A) A的矩陣指數(shù)函數(shù)
log(A) 對(duì)A的各元素求對(duì)數(shù) logm(A) A的矩陣對(duì)數(shù)函數(shù)
sqrt(A) 對(duì)A的各元素求平方根 sqrtm(A) A的矩陣平方根函數(shù)
f(A) 求A各個(gè)元素的函數(shù)值 funm(A,’FUN’) 矩陣的函數(shù)運(yùn)算

注意:(1)funm(A,’FUN’)要求A必須是方陣,“FUN”為矩陣運(yùn)算的函數(shù)名。
(2)在執(zhí)行數(shù)組與數(shù)組之間的運(yùn)算的時(shí)候,參與運(yùn)算的數(shù)組必須同維,運(yùn)算所得的結(jié)果數(shù)組也總與原數(shù)組同維。

###3.1.9 關(guān)系操作和邏輯操作
在使用MATLAB語言進(jìn)行程序設(shè)計(jì)時(shí),經(jīng)常會(huì)涉及到程序流程的控制,此時(shí)需要對(duì)一些問題作出一些判斷,為此MATLAB提供了關(guān)系操作、邏輯計(jì)算以及一些相關(guān)的運(yùn)算函數(shù)。

(1)關(guān)系運(yùn)算
關(guān)系操作符有:<(小于關(guān)系)、<=(小于或等于關(guān)系)、>(大于關(guān)系)、>=(大于或等于關(guān)系)、= =(等于關(guān)系)、~=(不等于關(guān)系)。

關(guān)系運(yùn)算規(guī)則為:

  • 若兩個(gè)變量都是標(biāo)量,則結(jié)果為真(1)或假(0);
  • 若兩個(gè)變量都是數(shù)組,則必須大小相同,結(jié)果也是同樣大小的數(shù)組,數(shù)組的元素為0或1;
  • 若一個(gè)數(shù)組和一個(gè)標(biāo)量,則把數(shù)組的每個(gè)元素分別與標(biāo)量比較,結(jié)果為與數(shù)組大小相同的數(shù)組,數(shù)組的元素為0或1。
  • 其中<、<=和>、>=,僅對(duì)參加比較變量的實(shí)部進(jìn)行比較,而= =和~=,則同時(shí)對(duì)實(shí)部和虛部進(jìn)行比較。

【例3.20】關(guān)系運(yùn)算
在命令窗口中輸入以下內(nèi)容,生成矩陣A和矩陣B:
&gt;&gt; A=[1 2 3 4 5;5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9];
&gt;&gt; B=[5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;4 5 6 7 8];
①判斷矩陣A、B對(duì)應(yīng)的元素是否相同,并將結(jié)果返回給矩陣C1。在命令窗口中輸入:
&gt;&gt; C1=A==B %A、B矩陣對(duì)應(yīng)元素相等的返回1,否則返回0
②判斷矩陣A的元素是否大于等于矩陣B對(duì)應(yīng)的元素,并將結(jié)果返回給矩陣C2。在命令窗口中輸入:
&gt;&gt; C2=A&gt;=B %A、B矩陣對(duì)應(yīng)元素A大于等于B的返回1,否則返回0
③判斷矩陣A、B對(duì)應(yīng)的元素是否不相同,并將結(jié)果返回給矩陣C3。在命令窗口中輸入:
&gt;&gt; C3=A~=B %A、B矩陣對(duì)應(yīng)元素相等的返回0,否則返回1

(2) 邏輯運(yùn)算
邏輯操作符有:&(與)、|(或)、~(非)和xor(異或)。在邏輯運(yùn)算中,非0元素表示真(1),0元素表示假(0),邏輯運(yùn)算的結(jié)果為0或1,邏輯運(yùn)算法則具體見表3.5所示。

表3.5 邏輯運(yùn)算

a b a&b a or b ~a xor(a,b)
0 0 0 0 1 0
0 1 0 1 1 1
1 0 0 1 0 1
1 1 1 1 0 0

邏輯操作的需要滿足以下運(yùn)算規(guī)則:

  • 若兩個(gè)變量都是標(biāo)量,則結(jié)果為0、1的標(biāo)量;
  • 若兩個(gè)變量都是數(shù)組,則必須大小相同,結(jié)果也是同樣大小的數(shù)組;
  • 若是一個(gè)數(shù)組和一個(gè)標(biāo)量進(jìn)行邏輯運(yùn)算,則把數(shù)組的每個(gè)元素分別與標(biāo)量比較,結(jié)果為與數(shù)組大小相同的數(shù)組。

除了上面的邏輯操作符外,MATLAB還提供了&&(先決與)邏輯運(yùn)算符和||(先決或)邏輯運(yùn)算符。

&&(先決與)邏輯運(yùn)算符是當(dāng)該運(yùn)算符的左邊為1(真)時(shí),繼續(xù)執(zhí)行該運(yùn)算符右邊的運(yùn)算,并執(zhí)行與邏輯運(yùn)算;否則,不再執(zhí)行該運(yùn)算符右邊的運(yùn)算,并立即給出運(yùn)算的結(jié)果為0(假)。

||(先決或)邏輯運(yùn)算符是當(dāng)該運(yùn)算符的左邊為1(真)時(shí),就不需要繼續(xù)執(zhí)行該符號(hào)右邊的運(yùn)算,并立即得出該邏輯運(yùn)算結(jié)果為1(真);否則,就要繼續(xù)執(zhí)行該符號(hào)右邊的運(yùn)算,并執(zhí)行或邏輯運(yùn)算。

【例3.21】邏輯運(yùn)算
在命令窗口中輸入以下內(nèi)容,生成矩陣A和矩陣B:
&gt;&gt; A=[1 2 3 4 5;5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9];
&gt;&gt; B=[5 3 4 8 5;6 8 7 6 9;2 6 8 2 1;2 7 9 3 9;4 5 6 7 8];
①若計(jì)算A和B之間邏輯與的值,并將結(jié)果返回給矩陣C1。在命令窗口中輸入:
&gt;&gt; C1=A&B %計(jì)算A和B之間邏輯與的值
②若計(jì)算A和B之間邏輯或的值,并將結(jié)果返回給矩陣C2。在命令窗口中輸入:
&gt;&gt; C2=A|B %計(jì)算A和B之間邏輯或的值
③若計(jì)算A的邏輯非,并將結(jié)果返回給矩陣C3。在命令窗口中輸入:
&gt;&gt; C3=~A %計(jì)算A的邏輯非
④若計(jì)算A和B之間邏輯異或,并將結(jié)果返回給矩陣C4。在命令窗口中輸入:
&gt;&gt; C4=xor(A,B) %計(jì)算A和B之間邏輯異或

【例3.22】先決邏輯運(yùn)算
在命令窗口中輸入以下變量a、b和c:
&gt;&gt; a=0;
&gt;&gt; b=5;
&gt;&gt; c=10;
①進(jìn)行先決與操作,在命令窗口中輸入以下內(nèi)容:
&gt;&gt; (a~=0)&&(b&lt;c)
運(yùn)算結(jié)果如下:
ans =<br/>0
②進(jìn)行先決與操作,在命令窗口中輸入以下內(nèi)容:
&gt;&gt; (a~=0)||(b&lt;c)
運(yùn)算結(jié)果如下:
ans =<br/>1

(3)邏輯函數(shù)運(yùn)算

MATLAB中提供的一些函數(shù)返回的結(jié)果為真(1)和假(0),這樣的函數(shù)包括關(guān)系邏輯函數(shù)、工作狀態(tài)判斷函數(shù)、特殊數(shù)據(jù)判斷函數(shù)和數(shù)據(jù)類型函數(shù)。表3.6所示為關(guān)系邏輯函數(shù)以及對(duì)應(yīng)的功能描述。

表3.6 關(guān)系邏輯函數(shù)

函數(shù)名 功能 函數(shù)名 功能
all(A) 判斷A的列向量元素是否全非0,全非0則為1 isnan(A) 判斷A的各元素值是否為NAN,是則為1
any(A) 判斷A的列向量元素中是否有非0元素,有則為1 isnumeric(A) 判斷數(shù)組A的元素是否全為數(shù)值型數(shù)組
isequal(A,B) 判斷A、B對(duì)應(yīng)元素是否全相等,相等為1 isreal(A) 判斷數(shù)組A的元素是否全為實(shí)數(shù),是則為1
isempty(A) 判斷A是否為空矩陣,為空則為1,否則為0 isprime(A) 判斷A的各元素值是否為質(zhì)數(shù),是則為1
isfinite(A) 判斷A的各元素值是否有限,是則為1 isspace(A) 判斷A的各元素值是否為空格,是則為1
isinf(A) 判斷A的各元素值是否無窮大,是則為1 find(A) 尋找A數(shù)組非0元素的下標(biāo)和值

(4)運(yùn)算符優(yōu)先級(jí)

MATLAB提供了多種運(yùn)算符號(hào),各種運(yùn)算符執(zhí)行的先后順序是根據(jù)其所具有的優(yōu)先級(jí)來決定的。下面列出了各種運(yùn)算符的優(yōu)先級(jí)順序,由上至下優(yōu)先級(jí)遞減,每行的優(yōu)先級(jí)相同:

a) 括號(hào)()
b) '(矩陣轉(zhuǎn)置)、^ (矩陣冪)和.'(數(shù)組轉(zhuǎn)置)、.^(數(shù)組冪)
c) ~(邏輯非)、代數(shù)正+、代數(shù)負(fù)-
d) (乘)、/(左除)、(右除)和.(點(diǎn)乘)、./(點(diǎn)左除)、.(點(diǎn)右除)
e) +、-(加減)
f) 冒號(hào):
g) <、<=、>、>=、~=
h) &(邏輯與)
i) |(邏輯或)
j) &&(先決與)
k) ||(先決或)

作者:德特?cái)?shù)據(jù)
聯(lián)系方式:156204968@qq.com

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI