一、ismember函数
1、ismember(a,b)
%返回前者是否存在于后者的logical数组
举例:a = [1 2 3 4 5 6]; b = [3 5 6];
ismember(a,b) 返回的数组为:0 0 1 0 1 1
ismember(b,a) 返回的数组为:1 1 1
二、find函数
1、find(X)
%返回数组、矩阵或者向量X中的所有非零元素的线性索引
如 c= [0 0 1 0 1 1]; find(c) = [3 5 6]
再如矩阵A = [1 0 0; 4 0 6];
find(A) = [1; 2; 6] %在matlab中矩阵的索引是按列的
2、find(X,k)
%返回向量X的前k个非零元素的线性索引
注意:是非零元素
如 以上述的c 为例,则 find(c,2) = [3 5] %c中的前2个非零元素的下标分别是3和53/3
当然也可以反方向查找元素,看3
3、find(X,k,direction)
%根据direction确定是返回前k个还是返回后k个非零元素的线性索引
(1)direction默认情况为'first',即返回前k个非零元素的线性索引,同 find(X,k)
(2)direction='last'时,返回后k个非零元素的线性索引
如 c= [0 0 1 0 1 1]; find(c, 1, 'last') = [6] %返回后1个非零元素的线性索引
4、[row, col, val] = find(X)
%返回非零元素的下标和值
如 A = [1 0 3; 4 0 0]; [row, col, val] = find(A)
则row = [1; 2; 1]; col = [1; 1; 3]; val = [1; 4; 3]
也可根据需要只返回非零元素下标[row, col] = find(X)
5、find(condition)函数也可以寻找符合条件的元素下标
如 A = [1 3 5; 2 4 6]; [row, col] = find( A>3 & A<6)
则 row = [2; 1]; col = [2; 3]