物件尺寸(Object Sizes)

以下的函數可以用來查詢或設定變數的尺寸,這些函數可以用於任何類型的變數,在無法判別時會傳回 -1,例如資料結構並沒有行數與列數,因此若將資料結構傳入 rows()columns() 會傳回 -1

ndims (x)

ndims() 函數會傳回陣列(array)的維度。trailing singleton dimensions 會被忽略。

在 Octave 中任何陣列的維度都大於或等於 2(與 Matlab 相同)。
columns (x)

columns(x) 函數會傳回 x 的行(column)數。

rows (x)

rows(x) 函數會傳回 x 的列(row)數。

numel (x)

numel(x) 函數會傳回在 x 中元素(element)的數量。

length (x)

length(x) 會傳回 x 的長度,一個矩陣的長度定義為行數與列數中較大的那個值(這個奇怪的定義是為了要與 Matlab 相容)。

size (x)
size (x, n)

size(x) 會傳回 x 的列(row)數與行(column)數,當只由一個輸出參數時,會輸出一個列向量,例如:

a = [1, 2; 3, 4; 5, 6]
a_size = size(a)

當有多個輸出參數時,第一個是列數,第二個是行數,例如:

[nr, nc] = size(a)

size(x, n) 函數加入第二個參數 n 可以指定要輸出的維度,例如:

size(a, 2)

這樣會傳回矩陣 A 的行數。

isempty (x)

isempty(x) 函數用來判斷 x 是否為空矩陣(empty matrix,即行數或列數等於 0 的矩陣),若為空矩陣則傳回 1,否則傳回 0

isnull (x)

isnull(x) 函數用來判斷 x 是否為 null 的矩陣、字串、單引號之字串。例如:

isnull([])

將陣列的某個元素指定為 null 會將此元素從陣列中移除,例如:

a = [1, 3, 5, 7, 9]
a(2) = []
isnull() 函數主要用於自行定義的類別將索引指定(indexed assignment)運算子多載化(overloading)的時候。
sizeof (x)

sizeof(x) 傳回 x 所佔的記憶體大小,單位為 byte。

size_equal (a, b, ...)

size_equal(x) 函數判斷所有傳入變數的維度是否都相同,若相同則傳回 1,否則傳回 0。若只有傳入一個變數,則傳回 1。例如:

a = [1, 2]
b = [3, 4]
c = 5
size_equal(a, b)
size_equal(a, b, c)
squeeze (x)

squeeze(x) 函數會將 x 的資料保留但去除 singleton dimensions 並傳回結果。例如:

x = rand(2, 1, 3)
squeeze(x)