目录

1.find函数

2.find功能函数

3.find功能函数详解

3.1 k = find(X)

3.2 k = find(X<10,5)

3.3 k = find(y==0.3)

3.4 k = find(X,4,'last')

3.5 [row,col] = find(X>0 & X<10,3)

3.5 [row,col,v] = find(X)

3.6 [row,col] = find(X)


1.find函数

功能:查找非零元素索引

2.find功能函数

  • k = find(X)

  功能:返回一个向量,该向量包含数组X中每个非零元素线性索引

  如果X是向量,则find返回与X方向相同的向量

  如果X是多维数组,则find返回结果线性索引的列向量

  如果X不包含非零元素或为,则find返回一个空数组

  • k = find(X,n)

  功能:返回对应于X中非零元素前n个索引

  • k = find(X,n,direction)

  功能:其中direction为'last',查找X中的最后n个非零元素。方向的默认值为'first',查找前n个非零元素。

  • [row,col] = find(___)

  功能:使用先前语法中的任何输入参数返回数组X中每个非零元素的行和列下标

  • [row,col,v] = find(___)

  功能:返回向量v,其中包含X的非零元素

3.find功能函数详解

3.1 k = find(X)

在3×3矩阵中找到非零元素。

%% 矩阵中的零和非零元素
% 在3×3矩阵中找到非零元素。
X = [1 0 2; 0 1 1; 0 0 4]
%%
k = find(X)
%%
% 使用逻辑| not | | X |上的运算符 找到零。
k2 = find(~X)

输出结果如下图:

Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网

数组k,输出的为二维数组X的非零元素的下标(索引),是按列进行排查的;

数组k2,输出的为二维数组X的零元素的下标(索引),是按列进行排查的;

3.2 k = find(X<10,5)

在4×4矩阵中找到小于10的前五个元素

程序如下:

%% 满足条件的要素
% 在4 x 4矩阵中找到小于10的前五个元素
% 方阵X = magic(4)
%%
%
k = find(X<10,5)
%%
% 查看| X |的相应元素。
X(k)

输出结果如下图:

Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网

3.3 k = find(y==0.3)

要查找特定的整数值,请使用==运算符。 例如,在奇数的1×10向量中找到等于13的元素。

%% 等于特定值的元素
% 要查找特定的整数值,请使用| == | 操作
% 找到等于| 13 |的元素.在奇数1乘10的向量中。x = 1:2:20%%
%
k = find(x==13)%%
% 要查找非整数值,请根据您的数据使用公差值。
% 否则,由于浮点,结果有时是一个空矩阵
% 舍入错误。
y = 0:0.1:1%%
%
k = find(y==0.3)%%
%
k = find(abs(y-0.3) < 0.001)

输出结果如下图:

Matlab查找数据之find函数-编程知识网

3.4 k = find(X,4,'last')

查找最后几个非零元素

%% 最后几个非零元素
% 使用所有奇数索引元素创建6×6魔术方阵
% 等于零。X = magic(6);
X(1:2:end) = 0%%
% 找到_last_四个非零。
k = find(X,4,'last')

输出结果如下图:

Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网

3.5 [row,col] = find(X>0 & X<10,3)

查找满足多个条件的元素

%% 满足多个条件的元素
% 在4×4矩阵中找到大于| 0 |的前三个元素。 并且小于| 10 |。 指定两个输出以将行和列下标返回到元素。X = [18 3 1 11; 8 10 11 3; 9 14 6 1; 4 3 15 21]%%
%
[row,col] = find(X>0 & X<10,3)%%
% 第一个实例是| X(2,1)|,它是| 8 |。

输出结果如下图:

Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网

3.5 [row,col,v] = find(X)

寻找非零元素的下标和

%% 非零元素的下标和值
% 在3×3矩阵中找到非零元素。 指定三个输出以返回行下标,列下标和元素值。X = [3 2 0; -5 0 7; 0 0 1]%%
%
[row,col,v] = find(X)

输出结果如下图:

Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网

3.6 [row,col] = find(X)

寻找多维数组的下标

%% 多维数组的下标
% 在4×2×3数组中查找非零元素。 指定两个输出,| row |。 和| col |,返回非零元素的行和列下标。 
% 当输入是多维数组(| N> 2 |)时,| find | 返回| col | 作为| N-1 |的线性指标 | X |的尾随尺寸。X = zeros(4,2,3);
X([1 12 19 21]) = 1%%
%
[row,col] = find(X)

输出结果如下图:

Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网Matlab查找数据之find函数-编程知识网