文档

找到

查找非零元素的索引和值

描述

例子

k=找到(X返回一个包含线性指数数组中每个非零元素的X

  • 如果X是向量吗找到返回与的方向相同的向量X

  • 如果X那么是多维数组吗找到返回结果的线性下标的列向量。

  • 如果X则不包含非零元素或为空找到返回一个空数组。

例子

k=找到(Xn返回第一个n中非零元素对应的索引X

例子

k=找到(Xn方向,在那里方向“最后一次”,找到最后一个n中非零元素对应的索引X.默认的方向“第一”,即找到第一个n对应于非零元素的索引。

例子

上校= find(___返回数组中每个非零元素的行和列下标X使用以前语法中的任何输入参数。

例子

上校v= find(___同时返回向量v的非零元素X

例子

全部折叠

找出3 × 3矩阵中的非零元素。

X = [1 0 2;0 1 1;0 0 4]
X =3×31 0 2 0 1 1 0 0 4
k = find(X)
k =5×11 5 7 8 9

使用逻辑操作员在X来定位零。

k2 = find(~X)
k2 =4×12 3 4 6

找出4 × 4魔法方阵中小于10的前5个元素。

X =魔术(4)
X =4×416 2 3 13 5 11 10 8 9 7 6 12 4 14 15
k = find(X<10,5)
k =5×12 3 4 5 7

的对应元素X

X (k)
ans =5×15 9 4 2 7

若要查找特定的整数值,请使用= =操作符。例如,找到等于的元素13在一个1 × 10的奇数向量中。

X = 1:2:20
x =1×1013 5 7 9 11 13 15 17 19
K = find(x==13)
K = 7

若要查找非整数值,请使用基于数据的容差值。否则,由于浮点舍入错误,结果有时是一个空矩阵。

Y = 0:0.1:1
y =1×110 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
K = find(y==0.3)
K = 1x0空双行向量
K = find(abs(y-0.3) < 0.001)
K = 4

创建一个6乘6的神奇方阵,其中所有奇数索引元素都等于零。

X =魔术(6);X(1:2:end) = 0
X =6×60 0 0 0 0 3 32 7 21 23 25 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,“最后一次”
k =4×130 32 34 36

找出4 × 4矩阵中大于的前三个元素0小于10.指定两个输出以返回元素的行下标和列下标。

X = [18 3 1 11;8 10 11 3;9 14 6 1;4 3 15 21]
X =4×418 3 1 11 8 10 11 3 9 14 6 14 3 15 21
[row,col] = find(X>0 & X<10,3)
行=3×12 3 4
坳=3×11 1 1

第一个例子是X (2, 1),即8

找出3 × 3矩阵中的非零元素。指定三个输出以返回行下标、列下标和元素值。

X = [3 2 0;-5 0 7;0 0 1]
X =3×33 2 0 -5 0 7 0 0 1
[row,col,v] = find(X)
行=5×11 2 1 2 3
坳=5×11 1 2 3 3
v =5×13 -5 2 7

找出4 × 2 × 3数组中的非零元素。指定两个输出,而且上校,返回非零元素的行下标和列下标。当输入是多维数组时(N > 2),找到返回上校作为一个线性下标n - 1拖尾尺寸X

X = 0 (4,2,3);X([1 12 19 21]) = 1
X = X(:,:,1) = 1 0 0 0 0 0 0 0 X(:,:,2) = 0 0 0 0 0 0 0 1 X(:,:,3) = 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0
[row,col] = find(X)
行=4×11 4 3 1
坳=4×11 3 5 6

输入参数

全部折叠

输入数组,指定为标量、向量、矩阵或多维数组。如果X是空数组还是没有非零元素k是一个空数组。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符
复数支持:金宝app是的

要查找的非零数,指定为正整数标量。默认情况下,找到(X, n)寻找第一个n中非零元素X

搜索方向,指定为字符串“第一”“最后一次”.寻找最后的n中非零元素X使用找到(X, n,“最后”)

输出参数

全部折叠

指向非零元素的索引,作为向量返回。如果X是行向量吗k也是行向量。否则,k是一个列向量。k什么时候是空数组X为空数组或没有非零元素。

中返回非零值X使用X (k)

行下标,作为一个向量返回。在一起,而且上校指定坳X(行)中的非零元素对应的下标X

列下标,作为一个向量返回。在一起,而且上校指定坳X(行)中的非零元素对应的下标X

如果X多维数组与N > 2,然后上校它是线性下标吗n - 1拖尾尺寸X.这样就保留了关系X(row(i),col(i)) == v(i)

的非零元素X,作为一个向量返回。

更多关于

全部折叠

线性指数

线性索引允许使用单个下标对数组进行索引,例如(k).MATLAB®将数组视为单个列向量,其中每一列都附加到前一列的底部。因此,线性索引从上到下、从左到右对列中的元素进行编号。

例如,考虑一个3 × 3矩阵。你可以参考(2, 2)元素(5),以及(2、3)元素(8).线性下标的变化取决于数组的大小;(5)为3 × 3矩阵返回与4 × 4矩阵不同位置的元素。

sub2ind而且ind2sub函数在下标和线性下标之间转换时很有用。

提示

  • 若要查找满足条件的数组元素,请使用找到与关系表达式结合使用。例如,找到(X < 5)返回元素的线性下标X小于5

  • 直接找到其中的元素X满足条件X < 5,使用X (X < 5).避免像这样调用函数(找到(X < 5)),不必要地使用找到在逻辑矩阵上。

  • 当你执行时找到使用关系操作X > 1,重要的是要记住关系操作的结果是一个由1和0组成的逻辑矩阵。例如,命令[row,col,v] = find(X>1)返回逻辑的列向量1真正的)值v

  • 行和列下标,而且上校的线性指标k通过k = sub2ind(size(X),row,col)

扩展功能

R2006a之前介绍