行业知识
【MATLAB】find函数及其用法
一、k = find(X)
�index.php/tags-41973.html" >� 返回一个包含数组 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