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