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()
函数中使用小于运算符定义条件来实现。