2014-12-11 132 views

回答

2

這裏有兩種選擇,或者尋找其中的B元件的A的元素,如果有A重複,或通過使用C矩陣可能失敗匹配,查找第n之一。

A = [12 52 12 62 42]; 
C = logical([1 1 0 1 0]) 
B = A(C) 

[~,idx]=find(A==B(3)) %// finds where the third element of B was in A 
idx=find(cumsum(C)==3,1) %// finds where the third 1 in C is 
+0

加1,'cumsum'是該死的聰明。 – 2014-12-11 03:38:44

+0

此外,'A. * C'爲您提供了一個帶有「A」元素的向量,其中「C」爲1,以及「C」爲0的零點,這可能很有用。您也可以在代碼中使用它,具體取決於您嘗試實現的目標。 – David 2014-12-11 03:57:55

0

find給出了答案。假設indB表示B中的索引。然後A中的索引indA

indA = find(C); %// find nonzeros in C 
indA = indA(indB); %// take the indB-th nonzero in C