matlab 中 find() 函數用法

1、 功能:數組

尋找非零元素的索引和值

2、相關函數語法:函數

  1. ind = find(X)code

  2. ind = find(X, k)索引

  3. ind = find(X, k, 'first')ast

  4. ind = find(X, k, 'last')語法

  5. [row,col] = find(X, ...)查詢

  6. [row,col,v] = find(X, ...)di

3、說明:co

  1. index= find(X)數字

    找出矩陣X中的全部非零元素,並將這些元素的線性索引值(linear indices:按列)返回到向量index中。

    若是X是一個行向量,則index是一個行向量;不然,index是一個列向量。

    若是X不含非零元素或是一個空矩陣,則index是一個空矩陣。

  2. index = find(X, k) 或 3. index = find(X, k, 'first')

    找到前K個不爲0的線性索引值。k必須是一個正數,可是它能夠是任何 數字數值類型。

  3. index = find(X, k, 'last')

    找到後k個不爲零元素的線性索引值。

  4. [row,col] = find(X, ...)

    返回矩陣X中非零元素的行和列的索引值。這個語法對於處理稀疏矩陣 尤爲有用。

    若是X是一個N(N>2)維矩陣,col包括列的線性索引。

  5. [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的值。

相關文章
相關標籤/搜索