tmp = find(A > 0); %// A is a matrix
value = tmp(1);
在這種情況下,我想獲得數組find(A > 0)
的第一個值。我怎樣才能使用一條線而不是兩條線?如何直接索引查找函數返回的數組
tmp = find(A > 0); %// A is a matrix
value = tmp(1);
在這種情況下,我想獲得數組find(A > 0)
的第一個值。我怎樣才能使用一條線而不是兩條線?如何直接索引查找函數返回的數組
要獲得條件的第一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
元素;請始終檢查size
或numel
的ix
。
這是很容易:
A = rand(300,1);
T = find(A>0.8,1)
T =
4
k = find(X,n)
返回對應於所述非零元素在X.
要找到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
條目的索引。
獲取新方法!精彩! –
Thx很多,我忘了使用'help find'。 –