0
想象我有一個數組在MATLAB中將子數組索引轉換爲數組索引?
A = [12 52 12 62 42];
通過「邏輯提取指數」 C = logical([1 1 0 1 0])
,我形成了子陣
B = A(C);
問題
什麼是發現的一種優雅的方式元素索引A
,因爲其B
的索引是2,比如說?
想象我有一個數組在MATLAB中將子數組索引轉換爲數組索引?
A = [12 52 12 62 42];
通過「邏輯提取指數」 C = logical([1 1 0 1 0])
,我形成了子陣
B = A(C);
問題
什麼是發現的一種優雅的方式元素索引A
,因爲其B
的索引是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
find
給出了答案。假設indB
表示B
中的索引。然後A
中的索引indA
爲
indA = find(C); %// find nonzeros in C
indA = indA(indB); %// take the indB-th nonzero in C
加1,'cumsum'是該死的聰明。 – 2014-12-11 03:38:44
此外,'A. * C'爲您提供了一個帶有「A」元素的向量,其中「C」爲1,以及「C」爲0的零點,這可能很有用。您也可以在代碼中使用它,具體取決於您嘗試實現的目標。 – David 2014-12-11 03:57:55