2015-09-28 96 views

回答

2

要獲得條件的第一true值的索引中的第一n個索引,一個用途:

ix = find(A>0, 1, 'first'); 

請不要認爲ix不一定是一個單一的元素;如果條件沒有達到任何地方,ix將是空的。與同

ix = find(A>0, k, 'last'); 

一般情況下,返回true值的第一k指數的條件,用途:

ix = find(A>0, k, 'first'); 

,或者最後k指數是真實警告:不要指望返回的值有k元素;請始終檢查sizenumelix

+0

Thx很多,我忘了使用'help find'。 –

1

這是很容易:

A = rand(300,1); 
T = find(A>0.8,1) 
T = 
    4 

k = find(X,n)返回對應於所述非零元素在X.

0

要找到n個值(不一定是第一個)是滿足以下條件A>0可以使用

value = A(find(cumsum(A>0)==n, 1)); 

例如,

>> A = [1 0 5 0 4 0 2 -3]; 
>> n = 2; 
>> value = A(find(cumsum(A>0)==n, 1)) 
value = 
    5 

它是如何工作

cumsumn(A>0) incr只要條目滿足條件A>0就會減少。在上面的例子中,

>> A 
A = 
    1  0  5  0  4  0  2 -3 
>> cumsum(A>0) 
ans = 
    1  1  2  2  3  3  4  4 

所以第一次cumsum(A>0)達到n該指數是要A條目的索引。

+0

獲取新方法!精彩! –