MATLAB 中的 find() 函式
本教程將討論 Matlab 中的 find()
函式。
MATLAB 中的 find()
函式
find()
函式在向量或矩陣中查詢非零元素的值和索引。例如,讓我們找出向量中非零元素的索引。請參閱下面的程式碼。
clc
MyVect = [1 2 5 6 0]
indices = find(MyVect)
輸出:
MyVect =
1 2 5 6 0
indices =
1 2 3 4
輸出中有五個元素但只有四個索引,因為有一個元素的值為零。要使用使用找到向量中存在的任何值的索引,我們必須在 find 函式中傳遞該值。例如,假設我們有一個包含數字的向量,我們想要找到某個值的索引。我們可以通過在 find 函式中輸入值和等號來實現,find 函式將返回該值的索引。
例如,讓我們定義一個向量並找到向量內特定值的索引。請參閱下面的程式碼。
clc
MyVect = [1 2 5 6 0]
index = find(MyVect==5)
輸出:
MyVect =
1 2 5 6 0
index =
3
在輸出中,值 5 出現在向量內的索引 3 處。我們還可以在 find 函式中定義條件。例如,如果我們要查詢大於 1 且小於 10 的值的索引。我們可以使用大於和小於運算子在 find 函式中定義它。例如,讓我們定義一個向量並找到大於 5 且小於 10 的值。請參閱下面的程式碼。
clc
MyVect = [1 2 5 6 8 12 16]
index = find(MyVect<10 & MyVect>5)
輸出:
MyVect =
1 2 5 6 8 12 16
index =
4 5
輸出中有兩個大於 5 和小於 10 的值,它們的索引儲存在變數 index 中。在矩陣內部,值放置在行和列上,我們可以使用 find()
函式來查詢元素的位置。例如,讓我們建立一個矩陣並使用 find 函式查詢特定值的行號和列號。請參閱下面的程式碼。
clc
MyVect = [1 2 5 ; 8 12 16]
[row,col] = find(MyVect==8)
輸出:
MyVect =
1 2 5
8 12 16
row =
2
col =
1
在輸出中,值 8 位於第二行第一列。如果我們只想找到矩陣內值的單個索引,我們也可以找到,但我們必須記住,矩陣內的元素是按列放置的。例如,在 2×2 矩陣中,前兩個索引位於第一列,其他兩個位於第二列。例如,讓我們使用 find()
函式在矩陣內查詢值的索引。請參閱下面的程式碼。
clc
MyVect = [1 2 5 ; 8 12 16]
index = find(MyVect==8)
輸出:
MyVect =
1 2 5
8 12 16
index =
2
在輸出中,值 8 出現在矩陣內的索引 2 處。你還可以在 find 函式內為矩陣定義條件。例如,如果我們想查詢小於 10 的值的行數和列數,你也可以通過在 find()
函式中使用小於運算子定義條件來實現。