MATLAB中find函式的用法

2021-09-03 02:32:59 字數 1757 閱讀 7215

find函式:查詢非零元素的索引和值

主要有下面5中用法,

k = find(x)

x有三種情況:

(1):如果x為向量(行向量或者列向量),k為x中非零元素索引組成的向量。k的方向與x的方向相同。如果x為行向量,那麼k為行向量

(2):如果x為多維陣列,k為x中非零元素線性索引組成的列向量(位置索引組成的列向量),線性索引是按照一列一列排序的,例如2×2陣列,第一行第一列線性索引為1,第二行第一列線性索引為2,第一行第二列線性索引為3。。。。。。。

(3):如果x不包含非零元素,或者為空,則k為空陣列。

>> x=[1,0,1,0,1];   

>> k=find(x) %行向量

k = 1 3 5 %輸出為行向量

>> k=find(x') %列向量

k = 1

35 %輸出為列向量

>> x=[1,0,1;1,1,0;0,0,0]; %多維陣列

>> k=find(x)

k = 125

7>> x=zeros(3,3);

>> k=find(x)

k = empty matrix: 0-by-1

>> x=;

>> k=find(x)

k =

k = find(x,n) 返回與 x 中的非零元素對應的前 n 個索引

>> x=[1,0,1;1,1,0;0,0,0];

>> k=find(x,2) %返回前2個非零元素的線性索引

k = 1

2

k = find(x,n,direction) 其中 direction 為 『last』)查詢與 x 中的非零元素對應的最後 n 個索引。direction 的預設值為 『first』,即查詢與非零元素對應的前 n 個索引,等價於第二種用法。

>> x=[1,0,1;1,1,0;0,0,0];

>> k=find(x,2,'last')

k = 5

7

[row,col] = find(___) 使用前面三種語法中的任何輸入引數返回陣列 x 中每個非零元素的行和列下標

x=[1,0,1;1,1,0;0,0,0];

>> [row,col]=find(x)

row =12

21

col =11

23 %根據row和col可以確定哪一行哪一列為非零元素,x(1,1),x(2,1),x(2,2),x(1,3)為非零元素

[row,col,v] = find(___) 還返回包含 x 的非零元素的向量 v。v就是x中非零元素值組成的向量

x=[1,0,1;1,1,0;0,0,0];

>> [row,col,v]=find(x)

row =12

21

col =11

23

v = 111

1

最後,find函式其實也可以查詢滿足一定條件的元素索引。

x=[1,0,1;1,1,0;0,0,0];

>> k=find(x==1)

k = 125

7>> k=find(x>1)

k = empty matrix: 0-by-1

參考:

matlab中的find函式

參考部落格 find函式返回非0元素的索引 返回元素在原矩陣 向量中的索引 矩陣中的元素是一列一列儲存的 numel a 返回矩陣或向量中的元素總數 影象分割 繪製超畫素邊界 完整 sx,sy vl grad double segments type forward 計算二維影象的梯度 s find...

matlab中find函式簡介

找到非零元素的索引和值 語法 1.ind find x 2.ind find x,k 3.ind find x,k,first 4.ind find x,k,last 5.row,col find x,6.row,col,v find x,說明 1.ind find x 找出矩陣x中的所有非零元素,...

Matlab中find函式用法

matlab中find函式用法 1.對官網上用法做一下簡單說明。m,n,v find logical expression,amount,direction m表示返回的行標,n表示返回的列下標,v表示在原判斷矩陣滿足條件位置數值,logical epression代表邏輯判斷表示式,amount表...