一、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、结果展示

本文详细介绍了MATLAB中find函数的基本用法及其参数配置,包括如何获取非零元素索引、特定数值索引及指定数量索引的方法,并通过实例展示了find函数在不同情况下的应用。



977

被折叠的 条评论
为什么被折叠?



