MATLAB 中的 find() 函数

Ammar Ali 2022年5月11日
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() 函数中使用小于运算符定义条件来实现。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Matrix