find函数:查询非零元素的位置和值
用法1:B = find(A),A是一个矩阵,查询非零元素的位置
如果A是一个行向量,则返回一个行向量,否则,返回一个列向量。
如果A全是零元素或者空数组,则返回一个空数组。
>> A = [0 1 2 0 4 5]
A =
0 1 2 0 4 5
>> B = find(A)
B =
2 3 5 6
>> A = [0 1 2; 0 4 5]
A =
0 1 2
0 4 5
>> B = find(A)
B =
3
4
5
6
(位置的判定:在矩阵中,第一列开始,自上而下,依次为1,2,3...,然后再从第二列,第三列依次往后数)
用法2:B = find(A>2),找到A中比2大的元素的位置
>> A = [0 1 2; 0 4 5]
A =
0 1 2
0 4 5
>> B = find(A>2)
B =
4
6
用法3:B = find(A,2),找到A中最先出现的2个不为零的数的位置
>> A = [0 1 2; 0 4 5; 6 0 8]
A =
0 1 2
0 4 5
6 0 8
>> B = find(A, 2)
B =
3
4
用法4:B = find(A,2, 'first'),找到A中最先出现的2个不为零的数的位置
B = find(A,2, 'last'),找到A中最后出现的2个不为零的数的位置
>> A = [0 1 2; 0 4 5; 6 0 8]
A =
0 1 2
0 4 5
6 0 8
>> B = find(A, 2, 'first')
B =
3
4
>> C = find(A,2,'last')
C =
8
9
用法5:[r, c] = find(A),找到A中非零元素所在的行和列,行存储在矩阵r中,列存储在矩阵c中
>> A = [0 1 2; 0 4 5; 6 0 8]
A =
0 1 2
0 4 5
6 0 8
>> [r, c] = find(A)
r =
3
1
2
1
2
3
c =
1
2
2
3
3
3
用法6:[r, c, v] = find(A),找到A中非零元素所在的行和列,行存储在矩阵r中,列存储在矩阵c中,值存储在矩阵v中(需要知道值的用此用法,其他用法只能确定位置)
>> A = [0 1 2; 0 4 5; 6 0 8]
A =
0 1 2
0 4 5
6 0 8
>> [r, c, v] = find(A)
r =
3
1
2
1
2
3
c =
1
2
2
3
3
3
v =
6
1
4
2
5
8