一、find函數的概述
find函數是Matlab中常用的函數之一,它用於查找數組中符合條件的元素。具體來說,find函數可以返回一個數組中非零元素的下標,也可以返回一個邏輯數組。
A = [1,0,2,0,3,0];
B = find(A);
%輸出B為1,3,5
二、返回多個輸出參數的情況
find函數除了可以返回非零元素的下標外,還可以返回相應元素的值。
A = [1,0,2,0,3,0];
[B,I] = find(A);
%輸出B為1,2,3,下標為1,3,5
值得注意的是,當find函數的第一個輸入參數為邏輯數組時,默認情況下返回的是邏輯數組元素的下標,如果需要返回邏輯數組元素的值,需要在find函數的參數列表中將第二個參數設置為1。
三、find函數的高級用法
3.1 查找符合條件的最小值或最大值
find函數還可以用於查找數組中符合條件的最小值或最大值的下標。例如,查找數組A中大於2的最小值的下標:
A = [1,2,3,4,5];
B = find(A>2,1,'first');
%輸出B為3
其中,第一個參數為符合條件的數組,第二個參數為查找的個數,這裡為1,第三個參數表示查找的方向,’first’表示從前往後查找,’last’表示從後往前查找。
3.2 查找數組中重複元素的下標
查找數組中重複元素的下標可以用find函數實現。將數組A與2相減,如果有重複元素,差值就會為0。然後用find函數查找差值為0的下標即可。
A = [1,2,3,2,4,5];
B = find(A - 2 == 0);
%輸出B為2,4
3.3 查找多個數組中符合條件的元素
使用find函數還可以查找多個數組中符合條件的元素。例如,查找數組A和B中大於3的元素:
A = [1,2,3,4,5];
B = [2,4,6,8,10];
[C,D] = find([A,B]>3);
%輸出C為1,2,3,4,5,6;D為4,5,5,4,5,5
其中,[A,B]將數組A和B按列合併成一個新的數組,find函數查找符合條件的元素。
3.4 使用邏輯運算符查找符合條件的元素
使用邏輯運算符可以更靈活地查找符合條件的元素。例如,查找數組A中既是偶數又是大於2的元素:
A = [1,2,3,4,5];
B = find(mod(A,2) == 0 & A>2);
%輸出B為4
其中,第一個條件用mod函數判斷偶數,第二個條件為A>2。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/253338.html