物件尺寸(Object Sizes)
以下的函數可以用來查詢或設定變數的尺寸,這些函數可以用於任何類型的變數,在無法判別時會傳回 -1,例如資料結構並沒有行數與列數,因此若將資料結構傳入 rows()
或 columns()
會傳回 -1
。
ndims (x)
ndims()
函數會傳回陣列(array)的維度。trailing singleton dimensions 會被忽略。
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) = []
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)
繼續閱讀: 12