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 拿位置,按需选择。