MATLAB 数组函数参考

MATLAB find 函数返回满足条件(或非零)元素的下标。

语法

idx = find(X)
idx = find(X, k)        % 只找前 k 个
[row, col] = find(X)    % 矩阵:行、列分别返回
[row, col, v] = find(X) % 附加上下标和值

输入参数

参数说明
X数组或逻辑条件表达式
k最多返回的个数(可省略)

输出

向量返回线性下标;矩阵两个输出分别给行、列;三个输出再加下标值和元素值。

示例

v = [0 5 0 8 3];
find(v)
ans =
     2     4     5

按条件找下标:

v = [5 12 3 8 20];
find(v > 8)
ans =
     2     5

只找第一个:

find(v > 8, 1)
ans = 2

矩阵行列输出:

M = [1 0 3; 0 5 0];
[row, col] = find(M)
row = 1 1 2
col = 1 3 2

注意事项

  • 没找到返回空数组,配合 isempty 判断;
  • 逻辑索引 v(v>8) 直接取值,find 拿位置,按需选择。