算數運算子(Arithmetic Operators)
Octave 中的算術運算子(Arithmetic Operators)可以用於純量或矩陣:
x + y
:加法,若x
與y
皆為矩陣,則兩個矩陣必須有相同的大小,若一個是純量另一個是矩陣,則會將矩陣中每一個元素與純量相加。x .+ y
:元素加法,此運算子與 +. 相同。x - y
:減法,若x
與y
皆為矩陣,則兩個矩陣必須有相同的大小,若一個是純量另一個是矩陣,則會將矩陣中每一個元素與純量相減。x .- y
:元素減法,此運算子與-.
相同。x * y
:乘法,若x
與y
皆為矩陣,則x
的行數必須等於y
的列數。x .* y
:元素乘法,若x
與y
皆為矩陣,則兩個矩陣必須有相同的大小。x / y
:右除法,其作用相當於(inverse (y') * x')'
,但其不需要計算y'
。若係數矩陣不是方陣或為 singular,則會計算 minimum norm solution。x ./y
:元素右除法。x y
:左除法,其作用相當於inverse (x) * y
,但不需要計算inverse(x)
。若係數矩陣不是方陣或為 singular,則會計算 minimum norm solution。x . y
:元素左除法,y
中的每個元素會除以x
中所對應的元素。x ^ y
與x ** y
:指數,若x
與y
皆為純量,則傳回x
的y
次方;若x
為純量,y
為方陣,則會使用 eigenvalue expansion 計算結果;若x
為方陣,y
為一個整數,則會傳回x
連續y
次乘積的結果(若y
不是整數,則會使用 eigenvalue expansion);若x
與y
皆為矩陣,則會產生錯誤。x .^ y
與x .** y
:元素指數,若x
與y
皆為矩陣,則兩個矩陣必須有相同的大小。-x
:負數。+x
:正數,這個運算子基本上沒作用。x'
:共軛轉置(conjugate transpose),對於實數而言,這個運算子等同於轉置(transpose)運算子,而對於複數,此運算子等同於conj (x.')
。x.'
:轉置(transpose)。
由於 Octave 的元素運算子是以小數點開頭,因此在使用時有可能會發生一些模稜兩可的情況,例如:
1./m
因為這個小數點可以被解釋為常數 1
的小數點或是元素右除法,為了避免混淆,Octave 碰到這種情況會把他解釋為
(1) ./ m
而不是
(1.) / m
比較運算子(Comparison Operators)
比較運算子(Comparison Operators)可以比較兩個數值之間的關係,所有 Octave 的比較運算子在結果是 true
時會傳回 0
,而結果是 false
時則傳回 1
,若傳入值為矩陣,則會對矩陣中的每個元素進行比較,例如:
[1, 2; 3, 4] == [1, 3; 2, 4]
輸出為
ans = 1 0 0 1
若有一個運算元是矩陣而另外一個是純量,則會將此純量依序與矩陣中的元素進行比較,其傳回值為一個與運算元矩陣相同大小的矩陣。以下是一些 Octave 中的比較運算子:
x < y
:判斷x
是否小於y
。x <= y
:判斷x
是否小於或等於y
。x == y
:判斷x
是否等於y
。x >= y
:判斷x
是否大於或等於y
。x > y
:判斷x
是否大於y
。x != y
與x ~= y
:判斷x
是否不等於y
。
這些運算子是用於數值間的比較,無法用於字串,字串之間的比較可以使用 strcmp()
函數,請參考字串資料。
isequal (x1, x2, ...)
isequal(x1, x2, ...)
函數會判斷 x1, x2, ...
是否相等。
isequalwithequalnans (x1, x2, ...)
isequalwithequalnans(x1, x2, ...)
函數會在 NaN == NaN
的判斷條件下,判斷 x1, x2, ...
是否相等。