matlab中find函数的用法(Matlab中find函数)
matlab中find()函数的意思
[m,n]=find(A)或n=find(A)——返回矩阵A中非0项的坐标
通常与逻辑运算符一起使用,
如[m,n]=find(B2)
返回的是矩阵B中大于2的坐标。
(实际上B2就是一个0-1矩阵,满足B2的位置就是1,否则就是0)
matlab中find函数的问题
find()函数用于找出矩阵X中所有的非零数,r代表行序号,c代表列序号,v是找出的数的值。
在你给的X中,非零的数分别为 3, 2, -5, 7, 1
它们的位置分别是
3 第1行第1列
2 第1行第2列
-5 第2行第2列
7 第2 行第3列
1 第3行第3 列
所以所得结果为
r =
1
2
1
2
3
c =
1
1
2
3
3
v =
3
-5
2
7
1
matlab中find函数的作用???
其实,能看MATLAB的帮助文档,就能够知道大概的意思了
find - Find indices and values of nonzero elements
Syntax
ind = find(X)
ind = find(X, k)
ind = find(X, k, 'first')
ind = find(X, k, 'last')
[row,col] = find(X, ...)
[row,col,v] = find(X, ...)
翻译过来就是 --
ind = find(X) 查找矩阵X中的非零元,记录其下标位置于ind中,举个例子,如果
X = [1 2 0 3
3 0 0 4
0 1 0 3]
那么find(X)的结果ind = [1 2 4 6 10 11 12]', 这是按列来的,从第一列依次往后面数,等同于
Y = [1 3 0 2 0 1 0 0 0 3 4 3]; ind = find(Y);
那么为了更准确的得到行和列的指标,那么你可以输出两个结果,也就是
[row,col] = find(X), row代表行指标,col代表列指标,不甘心的话,还可以输出三个
[row,col,val] = find(X), 第三个val表示查找到对应位置非零元的值。
类似的,ind = find(X, k) 返回前k个非零元的指标
ind = find(X,k,'last') 返回后k个非零元的指标
+++++++++++++++++++++++++++++++++++++++++++++++++
一般情况下,find和逻辑矩阵用的很多,比方说,一个矩阵A中,想找到其中大于100数的位置和值,那么就可以用
[row,col] = find(A 100);
那么A(row,col)就是那些大于100的数值了。
找到A中大于100,小于1000数的位置,可以输入
[row,col] = find(A100 A1000);