1、 功能:数组
寻找非零元素的索引和值
2、相关函数语法:函数
ind = find(X)code
ind = find(X, k)索引
ind = find(X, k, 'first')ast
ind = find(X, k, 'last')语法
[row,col] = find(X, ...)查询
[row,col,v] = find(X, ...)di
3、说明:co
index= find(X)数字
找出矩阵X中的全部非零元素,并将这些元素的线性索引值(linear indices:按列)返回到向量index中。
若是X是一个行向量,则index是一个行向量;不然,index是一个列向量。
若是X不含非零元素或是一个空矩阵,则index是一个空矩阵。
index = find(X, k) 或 3. index = find(X, k, 'first')
找到前K个不为0的线性索引值。k必须是一个正数,可是它能够是任何 数字数值类型。
index = find(X, k, 'last')
找到后k个不为零元素的线性索引值。
[row,col] = find(X, ...)
返回矩阵X中非零元素的行和列的索引值。这个语法对于处理稀疏矩阵 尤为有用。
若是X是一个N(N>2)维矩阵,col包括列的线性索引。
[row,col,v] = find(X, ...)
返回X中非零元素的一个列或行向量v,同时返回行和列的索引值。若是X是一个逻辑表示,则v是一个逻辑矩阵。输出向量v包含经过评估X表示获得的逻辑矩阵的非零元素。
4、解释
I.用法一:
b=find(a),a是一个矩阵,查询非零元素的位置,若是X是一个行向量,则返回一个行向量;不然,返回一个列向量。若是X全是零元素或者是空数组,则返回一个空数组,例子以下所示,也能够用b=find(a>2),这句的意思是在a中找到比较2大的元素 a=[1 3;0 4] b=find(a)
输出
a =
1 3 0 4
b =
1 3 4
解释一下为何会获得b的值
a(1)
ans =
1 a(2)
ans =
0
II.用法二:
b=find(a,2),找出a中最早出现的2个不为零的数,a是你所要找的矩阵,2参数是指数量所下
a=[1 3;0 4] b=find(a,2)
输出
a =
1 3 0 4
b =
1 3
III.用法三:
c=find(a,2,'first')用法和二基本同样,以下 a=[1 3;0 4] b=find(a,2,'first')
输出
a =
1 3 0 4
b =
1 3
IV.用法四:
c=find(a,2,'last') 这句的意思是从最后一个非零元素起,找2个不为零的元素,以下 a=[1 3;0 4] b=find(a,2,'last')
输出
a =
1 3 0 4
b =
3 4
V.用法五:
[a1,a2]=find(a),找出a矩阵中非零元素所在行和列,并存在a1,a2中
a=[1 3;0 4] [a1,a2]=find(a)
输出
a =
1 3 0 4
a1 =
1 1 2
a2 =
1 2 2
VI.用法六:
[a1,a2,v]=find(a),找出矩阵中非零元素所在行和列,并存在a1,a2中,并将结果放在v中,以下所示,这个获得的v是a中第几行第几列的**非零**元素 a=[1 3;0 4] [a1,a2,val]=find(a)
输出
a =
1 3 0 4
a1 =
1 1 2
a2 =
1 2 2
val =
1 3 4
VII.用法七:
[a1,a2,val]=find(a>2),返回一个单位列向量,这里不知足a>2,以下所示
a=[1 3;0 4]
[a1,a2,val]=find(a>2)
a =
1 3 0 4
a1 =
1 2
a2 =
2 2
val =
2×1 logical 数组
1
1
val就是说矩阵中第1行第2列和第2行第2列的元素知足X>2为真用1来表示。
注意一下VI与VII的区别
X = [4 2 0; -4 0 6; 0 0 2] [a1,a2,val1]=find(X) [a3,a4,val2]=find(X>2)
输出
X =
4 2 0 -4 0 6 0 0 2
a1 =
1 2 1 2 3
a2 =
1 1 2 3 3
val1 =
4 -4 2 6 2
a3 =
1 2
a4 =
1 3
val2 =
2×1 logical 数组
1
1
*注意val1的值。