matlab中find函数的用法(Matlab中find函数)

http://www.itjxue.com  2023-01-25 07:03  来源:未知  点击次数: 

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);

(责任编辑:IT教学网)

更多

推荐网络媒体文章