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)可以比較兩個數值之間的關係,所有 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, ... 是否相等。