MATLAB中的Find()函数

MATLAB中的Find()函数

MATLAB中的find()函数用于查找非零元素或满足给定条件的元素的索引和值。关系表达式可与find结合使用,以找到满足给定条件的元素的索引。它返回一个包含线性索引的向量。

使用衬里索引,可以用一个下标来访问一个多维数组。MATLAB将数组视为一个单列向量,每一列都附加到前一列的底部。

示例:

例如,考虑以下3×3阵列A =

1 4 7

2 5 8

3 6 9

在这个数组中,所有元素都代表它们的线性索引,即我们可以用A(4)来引用A(1,2)。

语法:

下面是使用该功能的各种方法。

  • k = find(X) :它返回所有非零元素的索引。
  • k = find(X, n) :它返回X中非零元素的前n个索引
  • k = find(X, n, direction) : 方向可以是 “第一 “或 “最后”。如果方向是第一,这个函数将返回与非零元素对应的前n个指数,如果方向是最后,这个函数将返回与非零元素对应的最后n个指数。
  • [row, col] = find() :它用于获得所有非零元素的行和列的下标。
  • [row, col, v] = find() : row和column将保存所有非零元素的下标,v是一个向量,将保存所有非零元素。

注意: 如果X是一个矢量,k将与X的方向相同;如果X是一个多维数组,那么k将是一个列向量,它将持有线性索引。

例子1: 下面的代码将返回一个一维数组中非零元素的索引。

% Defining array
A = [1 2 3 0]
 
% Getting indices of non zero elements
find(A)

输出:

MATLAB中的Find()函数

例子2: 下面的代码将返回元素的前2个索引,其中的元素将大于3。

% Defining array
A = [1 2 0; 3 1 4; 5 6 7]
 
% Getting first 2 indices
find(A>3, 2)

输出:

MATLAB中的Find()函数

例子3: 下面的代码将返回大于3的元素的最后2行和列索引。

% Defining array
A = [1 2 0; 3 1 4; 5 6 7]
 
% Getting row and column
[row, col] = find(A>3, 2, 'last')

输出:

MATLAB中的Find()函数

所以,A(2,3)和A(3,3)是大于3的最后一个元素。我们得到的输出是(2, 3)和(3, 3),而不是(3,2)和(3, 3),因为MATLAB将数组视为单列向量,每一列都附加到前一列的底部。

例子4: 下面的代码将返回所有零元素的索引。这段代码使用了否定操作符(~)与查找函数结合使用。

% Defining array
A = [1 2 3 0]
 
% Getting indices of zero elements
find(~A)

输出:

MATLAB中的Find()函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程