鍍金池/ 教程/ 數(shù)據(jù)分析&挖掘/ Matlab運(yùn)算符
Matlab代數(shù)(方程求解)
Matlab開(kāi)發(fā)環(huán)境設(shè)置
Matlab GNU Octave
Matlab字符串
Matlab矩陣
Matlab微分和導(dǎo)數(shù)
Matlab數(shù)字
Matlab數(shù)據(jù)導(dǎo)入
Matlab整合集成
Matlab冒號(hào)符號(hào)
Matlab變量
Matlab數(shù)組
Matlab運(yùn)算符
Matlab數(shù)據(jù)導(dǎo)出
Matlab向量
Matlab命令
Matlab決策
Matlab微積分
Matlab圖形
Matlab教程
Matlab繪圖
Matlab多項(xiàng)式
Matlab .m腳本文件
Matlab循環(huán)
Matlab基礎(chǔ)語(yǔ)法
Matlab函數(shù)
Matlab轉(zhuǎn)換
Matlab概述
Matlab數(shù)據(jù)類型

Matlab運(yùn)算符

運(yùn)算符是一個(gè)符號(hào),它告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作。 MATLAB主要用于整個(gè)矩陣和陣列的操作。因此,MATLAB中的運(yùn)算符既可用于標(biāo)量數(shù)據(jù)也可用于非標(biāo)量數(shù)據(jù)。MATLAB允許以下類型的基本操作 -

  • 算術(shù)運(yùn)算符
  • 關(guān)系運(yùn)算符
  • 邏輯運(yùn)算符
  • 按位運(yùn)算符
  • 集合運(yùn)算符

下面我們來(lái)一個(gè)一個(gè)地學(xué)習(xí)。

算術(shù)運(yùn)算符

MATLAB允許兩種不同類型的算術(shù)運(yùn)算 -

  • 矩陣算術(shù)運(yùn)算
  • 數(shù)組算術(shù)運(yùn)算

矩陣算術(shù)運(yùn)算與線性代數(shù)中定義的相同。在一維和多維數(shù)組中,逐個(gè)元素執(zhí)行數(shù)組運(yùn)算。
矩陣運(yùn)算符和數(shù)組運(yùn)算符由句點(diǎn)符號(hào)(.)區(qū)分。 然而,由于對(duì)于矩陣和陣列的加減運(yùn)算是相同的,因此對(duì)于這兩種情況,運(yùn)算符相同。下表簡(jiǎn)要說(shuō)明了算術(shù)運(yùn)算符 -

算術(shù)運(yùn)算符示例代碼

運(yùn)算符 描述說(shuō)明
+ 加法或一元加法運(yùn)算。A + B表示相加存儲(chǔ)在變量AB中的值。AB必須具有相同的大小,除非是標(biāo)量。 標(biāo)量可以添加到任何大小的矩陣。
- 減法或一元減法運(yùn)算。 A-B表示從A中減去B的值。AB必須具有相同的大小,除非是標(biāo)量??梢詮娜魏未笮〉木仃囍袦p去標(biāo)量。
* 矩陣乘法。 C = A * B是矩陣AB的線性代數(shù)乘積。更準(zhǔn)確地說(shuō),執(zhí)行公式: ,對(duì)于非標(biāo)量AB,A的列數(shù)必須等于B的行數(shù)。標(biāo)量可以乘以任何大小的矩陣。
.* 陣列乘法。 A .* B是數(shù)組AB的逐個(gè)元素乘積。AB必須具有相同的大小,除非它們之一是標(biāo)量。
/ 數(shù)組乘法。A .* B是數(shù)組AB的逐個(gè)元素乘積。AB必須具有相同的大小,除非它們之一是標(biāo)量。
./ 數(shù)組右除。A./B是具有元素A(i,j)/ B(i,j)的矩陣。 AB必須具有相同的大小,除非它們之一是標(biāo)量。
\ 反斜杠或數(shù)組左除。如果A是一個(gè)方陣,A \ Binv(A)* B大致相同,除了以不同的方式計(jì)算。如果An×n矩陣,B是具有n個(gè)分量的列向量或具有若干這樣的列的矩陣,則X = A \ B是方程AX = B的解。如果A是不規(guī)則或幾乎單數(shù),將顯示警告消息。
.\ 陣列左除。A .\ B是具有元素B(i,j)/ A(i,j)的矩陣。AB必須具有相同的大小,除非它們之一是標(biāo)量。
^ 矩陣 X ^ pXP次冪,如果p是標(biāo)量。 如果p是整數(shù),則通過(guò)重復(fù)平方來(lái)計(jì)算冪值。 如果整數(shù)為負(fù),則X首先倒置。 對(duì)于p的其他值,計(jì)算涉及特征值和特征向量,使得如果[V,D] = eig(X),則X ^ p = V * D. ^ p / V。
.^ 陣列冪值, A ^ BB(i,j)A(i,j)的冪矩陣。AB必須具有相同的大小,除非它們之一是標(biāo)量。
' 矩陣轉(zhuǎn)置。 'A的線性代數(shù)轉(zhuǎn)置。對(duì)于復(fù)數(shù)矩陣,這是復(fù)共軛轉(zhuǎn)置。
.' 數(shù)組轉(zhuǎn)置。.'A的數(shù)組轉(zhuǎn)置。對(duì)于復(fù)數(shù)矩陣,這不涉及共軛。

關(guān)系運(yùn)算符

關(guān)系運(yùn)算符也可以用于標(biāo)量和非標(biāo)量數(shù)據(jù)。數(shù)組的關(guān)系運(yùn)算符在兩個(gè)數(shù)組之間執(zhí)行逐個(gè)元素的比較,并返回相同大小的邏輯數(shù)組,如果為真,則元素設(shè)置為邏輯1(true),如果為假,則元素設(shè)置為邏輯0(false)。

下表顯示了MATLAB中可用的關(guān)系運(yùn)算符:

關(guān)系運(yùn)算符示例代碼

操作符 說(shuō)明描述
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于
~= 不等于

邏輯運(yùn)算符

MATLAB提供兩種類型的邏輯運(yùn)算符和函數(shù):

  • 逐元素 - 這些運(yùn)算符對(duì)邏輯陣列的相應(yīng)元素進(jìn)行操作。
  • 短路 - 這些運(yùn)算符在標(biāo)量和邏輯表達(dá)式上運(yùn)行。

元素邏輯運(yùn)算符在邏輯數(shù)組上運(yùn)行逐個(gè)元素。符號(hào)|?是邏輯數(shù)組運(yùn)算符AND,ORNOT

短路邏輯運(yùn)算符允許邏輯運(yùn)算短路。符號(hào)&&||是邏輯短路運(yùn)算符ANDOR。

邏輯運(yùn)算符示例代碼

位運(yùn)算

按位運(yùn)算符對(duì)位執(zhí)行,并執(zhí)行逐位運(yùn)算。,|^的真值表如下 -

假設(shè)A = 60B = 13; 現(xiàn)在以二進(jìn)制格式,它們將如下所示:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

MATLAB提供了諸如“按位與”和“按位或”以及“按位非”操作,移位操作等位操作的各種功能。

下表顯示了常用的按位操作:

按位操作示例

方法 目的
bitand(a, b) 整數(shù)ab的位與AND操作
bitcmp(a) a的比特補(bǔ)碼
bitget(a,pos) 在整數(shù)數(shù)組a中,獲取指定的位置pos位字節(jié)
bitor(a, b) 整數(shù)ab的逐位OR操作
bitset(a, pos) 設(shè)置在指定pos處的位字節(jié)
bitshift(a, k) 返回向左移位k字節(jié),相當(dāng)于乘以2^k。 k的負(fù)值對(duì)應(yīng)于向右移位或除以`2^ k ` 并舍入到最接近的整數(shù)到負(fù)無(wú)窮大。任何溢出位都被截?cái)唷?/td>
bitxor(a, b) 整數(shù)ab的逐字節(jié)位XOR操作
swapbytes 交換字節(jié)排序

集合操作

MATLAB為集合操作提供了各種功能,如聯(lián)合,交集和集合成員的測(cè)試等。

下表顯示了一些常用的集合操作 -

函數(shù) 描述
intersect(A,B) 設(shè)置兩個(gè)陣列的交集; 也就是返回AB共同的值。返回的值按排序順序排列。
intersect(A,B,’rows’) A的每一行和B的每一行視為單個(gè)實(shí)體,并返回AB兩者共同的行。返回矩陣的行按排序順序排列。
ismember(A,B) 返回與A相同大小的數(shù)組,其中包含1(true),其中A的元素位于B中。其他地方返回0(false)。
ismember(A,B,’rows’) A的每行和B的每一行視為單個(gè)實(shí)體,并返回一個(gè)包含1(true)的向量,其中矩陣A的行也是B行。其他返回0(false)。
issorted(A) 如果A的元素按排序順序返回邏輯1(真),否則返回邏輯0(假)。輸入A可以是一個(gè)向量,也可以是N-by-11-by-N的字符串?dāng)?shù)組。 如果Asort(A)的輸出相等,則認(rèn)為A被排序。
issorted(A, ‘rows’) 如果二維矩陣A的行按排序順序返回邏輯1(真),否則返回邏輯0(假)。 如果A和排序(A)的輸出相等,則認(rèn)為矩陣A被排序。
setdiff(A,B) 設(shè)置兩個(gè)數(shù)組的差異; 返回A中不在B中的值。返回的數(shù)組中的值按排序順序排列。
setdiff(A,B,’rows’) A的每一行和B的每一行視為單個(gè)實(shí)體,并從不在B中的A返回行。返回的矩陣的行按排序順序排列。'rows'選項(xiàng)不支持單元格數(shù)組。
setxor 設(shè)置兩個(gè)數(shù)組的異或
union 設(shè)置兩個(gè)數(shù)組的并集
unique 使數(shù)組中的值唯一