Matlab中find()寻找函数的常见用法

时间:2024-02-20 13:22:25


Matlab中find函数的使用简言之:
输入为:寻找的对象和条件  (在哪里找和找什么);
输出为:满足条件的数的位置。
当没有寻找到满足条件的值时,返回空矩阵;
例如在某向量/矩阵中寻找为零的数,寻找不为零的数,寻找某一范围内的数,判断是否有满足条件的数以及有多少等等:

 

  •  Example 1.寻找不为零的数:

 find函数若不明确写出寻找条件而是仅仅写出寻找的对象(如下面的find(x)),则默认是找出向量/矩阵中不为零的数,并输出其位置:

运行:

1 x = [1,0,8,9,10,-2,-8,-0.5,27];
2 index = find(x) 

结果:

1 index =
2 
3      1     3     4     5     6     7     8     9

 

  •  Example 2.寻找不为零的数(个人常用):

 find(x~=0) 等价于 find(x)

运行:

1 x = [1,0,8,9,10,-2,-8,-0.5,27];
2 index = find(x~=0) 

结果:

1 index =
2 
3      1     3     4     5     6     7     8     9

 

  •  Example 3.寻找能整除某数的数:

 例如在x向量中寻找3的倍数,返回其在x向量中的位置:

运行:

1 x = [1,0,8,9,10,-2,-8,-0.5,27];
2 index = find(mod(x,3)==0)      % 在x中寻找能被3整除(对3取余的结果为0)的数

结果:

1 index =
2 
3      2     4     9

 

  •  Example 4.在x中寻找某个范围内的数, 返回其在x向量中的位置:

运行:

1 x = [1,0,8,9,10,-2,-8,-0.5,27];
2 index = find(x>-3&x<=1)     % 注意:这里不能写成 find(-3<x<=1)

结果:

1 index =
2 
3      1     2     6     8

 

  •  Example 5. 在矩阵x中寻找,返回其在x矩阵中的位置:

 注意:matlab对矩阵的存储和操作是按照列排序的,所以返回的索引这里是4:

运行:

1 x = [1,0,8;9,10,-2;-8,-0.5,27];
2 index = find(x==0) 

结果:

1 index =
2 
3      4