語法k = find(X)
k = find(X,n)
k = find(X,n,direction)
[row,col]
= find(___)
[row,col,v]
= find(___)
說明
示例 k = find(X ) 返回一個包含數(shù)組 X 中每個非零元素的線性索引的向量。
如果 X 為向量,則 find 返回方向與 X 相同的向量。 如果 X 為多維數(shù)組,則 find 返回由結(jié)果的線性索引組成的列向量。 如果 X 包含非零元素或為空,則 find 返回一個空數(shù)組。
示例 k = find(X ,n ) 返回與 X 中的非零元素對應(yīng)的前 n 個索引。
示例 k = find(X ,n ,direction ) (其中 direction 為 'last' )查找與 X 中的非零元素對應(yīng)的最后 n 個索引。direction 的默認值為 'first' ,即查找與非零元素對應(yīng)的前 n 個索引。
示例 [row ,col ]
= find(___) 使用前面語法中的任何輸入?yún)?shù)返回數(shù)組 X 中每個非零元素的行和列下標(biāo)。
示例 [row ,col ,v ]
= find(___) 還返回包含 X 的非零元素的向量 v 。
示例全部折疊 矩陣中的零和非零元素 在 3×3 矩陣中查找非零元素。 X = [1 0 2; 0 1 1; 0 0 4] 對 X 使用邏輯 not 運算符以查找零值。 滿足一個條件的元素 在 4×4 幻方矩陣中查找前五個小于 10 的元素。 X =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
查看 X 的對應(yīng)元素。 等于特定值的元素 要查找特定的整數(shù)值,請使用 == 運算符。例如,在 1×10 的奇整數(shù)向量中查找等于 13 的元素。 x =
1 3 5 7 9 11 13 15 17 19
要查找非整數(shù)值,請基于您的數(shù)據(jù)使用容差值。否則,由于浮點舍入誤差有時會生成空矩陣。 y =
Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Columns 8 through 11
0.7000 0.8000 0.9000 1.0000
k =
1x0 empty double row vector
k = find(abs(y-0.3) < 0.001) 最后幾個非零元素 創(chuàng)建一個由等于零的所有奇數(shù)索引元素組成的 6×6 幻方矩陣。 X = magic(6);
X(1:2:end) = 0 X =
0 0 0 0 0 0
3 32 7 21 23 25
0 0 0 0 0 0
8 28 33 17 10 15
0 0 0 0 0 0
4 36 29 13 18 11
查找后四個非零值。 滿足多個條件的元素 在 4×4 矩陣中查找前 3 個大于 0 且小于 10 的元素。指定兩個輸出以便將行和列下標(biāo)返回到這些元素。 X = [18 3 1 11; 8 10 11 3; 9 14 6 1; 4 3 15 21] X =
18 3 1 11
8 10 11 3
9 14 6 1
4 3 15 21
[row,col] = find(X>0 & X<10,3) 第一個實例是 X(2,1) ,即 8 。 非零元素的下標(biāo)和值 在 3×3 矩陣中查找非零元素。指定三個輸出以返回行下標(biāo)、列下標(biāo)和元素值。 X = [3 2 0; -5 0 7; 0 0 1] 多維數(shù)組的下標(biāo) 在 4×2×3 數(shù)組中查找非零元素。指定兩個輸出 row 和 col 以返回非零元素的行和列下標(biāo)。如果輸入是多維數(shù)組 (N > 2 ),find 返回 col 作為 X 的 N-1 個尾部維度的線性索引。 X = zeros(4,2,3);
X([1 12 19 21]) = 1 X =
X(:,:,1) =
1 0
0 0
0 0
0 0
X(:,:,2) =
0 0
0 0
0 0
1 0
X(:,:,3) =
0 1
0 0
1 0
0 0
輸入?yún)?shù)全部折疊 X - 輸入數(shù)組 標(biāo)量 | 向量 | 矩陣 | 多維數(shù)組
輸入數(shù)組,指定為標(biāo)量、向量、矩陣或多維數(shù)組。如果 X 為空數(shù)組或不含非零元素,則 k 為空數(shù)組。
數(shù)據(jù)類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
復(fù)數(shù)支持: 是 n - 要查找的非零元素數(shù)量 正整數(shù)標(biāo)量
要查找的非零元素數(shù)量,指定為正整數(shù)標(biāo)量。默認情況下,find(X,n) 查找 X 中的前 n 個非零元素。
direction - 搜索方向 'first' (默認) | 'last'
搜索方向,指定為字符串 'first' 或 'last' 。使用 find(X,n,'last') 在 X 中查找后 n 個非零元素。
輸出參數(shù)全部折疊 k - 指向非零元素的索引 向量
指向非零元素的索引,以向量的形式返回。如果 X 是行向量,則 k 也是行向量。否則 k 是列向量。X 是空數(shù)組或不含非零元素時,k 為空數(shù)組。
可以使用 X(k) 返回 X 中的非零值。
row - 行下標(biāo) 向量
行下標(biāo),以向量的形式返回。row 和 col 一起指定與 X 中的非零元素對應(yīng)的 X(row,col) 下標(biāo)。
col - 列下標(biāo) 向量
列下標(biāo),以向量的形式返回。row 和 col 一起指定與 X 中的非零元素對應(yīng)的 X(row,col) 下標(biāo)。
如果 X 是多維數(shù)組且 N
> 2 ,則 col 是 X 的 N-1 尾部維度的線性索引。這會保留關(guān)系 X(row(i),col(i)) == v(i) 。
詳細信息全部折疊 線性索引線性索引允許使用單個下標(biāo)創(chuàng)建指向數(shù)組的索引,例如A(k) 。MATLAB? 將該數(shù)組視為單列向量,其中每一列附加到前一列的底部。因此,線性索引從上到下、從左到右對列中的元素編號。 例如,假設(shè)一個 3×3 矩陣。您可以用 A(5) 來引用 A(2,2) 元素,用 A(8) 來引用 A(2,3) 元素。線性索引根據(jù)數(shù)組大小而改變;A(5) 會為 3×3 矩陣和 4×4 矩陣返回不同位置上的元素。 sub2ind 和 ind2sub 函數(shù)對于在下標(biāo)和線性索引之間進行轉(zhuǎn)換非常有用。
提示要查找符合條件的數(shù)組元素,請結(jié)合使用 find 和關(guān)系表達式。例如,find(X<5) 返回 X 中小于 5 的元素的線性索引。 要直接查找 X 中滿足條件 X<5 的元素,請使用 X(X<5) 。盡量避免使用 X(find(X<5)) 之類的函數(shù)調(diào)用,因為這種調(diào)用中對邏輯矩陣使用的 find 完全沒有必要。 將 find 與 X>1 之類的關(guān)系運算結(jié)合在一起執(zhí)行時,必須記住關(guān)系運算的結(jié)果是由 1 和 0 組成的邏輯矩陣。例如,命令 [row,col,v] = find(X>1) 會返回由 v 的邏輯值 1 (true ) 組成的列向量。 行下標(biāo)和列下標(biāo),即 row 和 col 與 k ×k
= sub2ind(size(X),row,col) 中的線性索引相關(guān)。
擴展功能C/C++ 代碼生成 使用 MATLAB? Coder? 生成 C 代碼和 C++ 代碼。用法說明和限制:
如果可變大小輸入在運行時變?yōu)樾邢蛄?,代碼生成將結(jié)束并報告錯誤。當(dāng)輸入為標(biāo)量或可變長度行向量時,此限制不適用。 對于可變大小輸入,空輸出(0×0、0×1 或 1×0)的形狀取決于輸入大小的上限。當(dāng)輸入數(shù)組在運行時為標(biāo)量或 [] 時,輸出可能與 MATLAB 不匹配。如果輸入為可變長度行向量,則空輸出的大小為 1×0。否則,大小為 0×1。 生成的代碼始終返回可變長度向量。即使您提供輸出向量 k ,輸出也不是固定大小,因為輸出可以包含少于 k 個元素。例如,find(x,1) 返回具有一個或零個元素的可變長度向量。
|