【MATLAB】find函数及其用法
一、k = find(X)
返回一个包含数组 X 中每个非零元素的线性索引向量。
如果 X 为向量,则 find 返回方向与X相同的向量。如果 X 为多维数组,则 find 返回由结果的线性索引组成的列向量。如果 X 包含非零元素或为空,则 find 返回一个空数组。
线性索引组成的列向量:表示索引按照列,从1开始,从第一列开始,下一列的第一个值的索引紧接上一列最后一个值的索引。
1、代码示例
X = [1 0 2;
0 1 1;
0 0 4];
disp(X)
k = find(X);
disp(k)
2、结果展示
在这个例子中,X中全部值对应的索引是:
1 4 7
2 5 8
3 6 9
所以结果将返回,所有非0元素的索引。


二、k = find(X == n) (其中n为X向量中的数值)
结果回返回 n 的全部索引。索引按照列,从1开始,从第一列开始,下一列的第一个值的索引紧接上一列最后一个值的索引。
1、代码示例
X = [ 0 1 2 3;
1 2 3 4;
2 3 4 4;
4 4 5 6];
k = find(X==4);
disp(k)
2、结果展示
在这个例子中,X中全部值对应的索引是:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
所以结果将返回,所有的 4 元素对应的索引。

三、k = find (X, n)
1、代码示例
返回与 X 中的非零元素对应的前 n 个索引。
X = magic(4); disp(X); # 生成一个n*n的矩阵,矩阵元素是由整数1到n^2组成的并且任何行任何列的和都相等 # 阶数n必须是大于等于3的标量 k = find(X<10,5); disp(k);
2、结果展示
结果应该返回小于10所对应的前五个的索引。

四、k = find (X, n, direction)
其中 direction 为 ‘last ‘,查找与 X 中的非零元素对应的最后 n 个索引。direction 的默认值为 ‘first’,即查找与非零元素对应的前 n 个索引。
1、代码示例
X = [0 0 0 0 0 0;
3 32 7 21 23 25;
0 0 0 0 0 0;
8 28 33 17 10 15;
0 0 0 0 0 0;
4 36 29 13 18 11];
k = find(X,4,'last'); # 查找后四个非零值
disp(k);
2、结果展示

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/e15e41a21d.html
