Matlab中find()尋找函數的常見用法



Matlab中find函數的使用簡言之:
輸入為:尋找的對象和條件  (在哪里找和找什么);
輸出為:滿足條件的數的位置。
當沒有尋找到滿足條件的值時,返回空矩陣;
例如在某向量/矩陣中尋找為零的數,尋找不為零的數,尋找某一范圍內的數,判斷是否有滿足條件的數以及有多少等等:

 

  •  Example 1.尋找不為零的數:

 find函數若不明確寫出尋找條件而是僅僅寫出尋找的對象(如下面的find(x)),則默認是找出向量/矩陣中不為零的數,並輸出其位置:

運行:

1 x = [1,0,8,9,10,-2,-8,-0.5,27];
2 index = find(x) 

結果:

1 index =
2 
3      1     3     4     5     6     7     8     9

 

  •  Example 2.尋找不為零的數(個人常用):

 find(x~=0) 等價於 find(x)

運行:

1 x = [1,0,8,9,10,-2,-8,-0.5,27];
2 index = find(x~=0) 

結果:

1 index =
2 
3      1     3     4     5     6     7     8     9

 

  •  Example 3.尋找能整除某數的數:

 例如在x向量中尋找3的倍數,返回其在x向量中的位置:

運行:

1 x = [1,0,8,9,10,-2,-8,-0.5,27];
2 index = find(mod(x,3)==0)      % 在x中尋找能被3整除(對3取余的結果為0)的數

結果:

1 index =
2 
3      2     4     9

 

  •  Example 4.在x中尋找某個范圍內的數, 返回其在x向量中的位置:

運行:

1 x = [1,0,8,9,10,-2,-8,-0.5,27];
2 index = find(x>-3&x<=1)     % 注意:這里不能寫成 find(-3<x<=1)

結果:

1 index =
2 
3      1     2     6     8

 

  •  Example 5. 在矩陣x中尋找,返回其在x矩陣中的位置:

 注意:matlab對矩陣的存儲和操作是按照列排序的,所以返回的索引這里是4:

運行:

1 x = [1,0,8;9,10,-2;-8,-0.5,27];
2 index = find(x==0) 

結果:

1 index =
2 
3      4

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM