例如,我有一個向量:
y = [21 19 15 17 18 19 25 36 48 19 19]'
在 y 向量中,我有一個重復元素 19。我應該是另一個向量,其中所有元素都等于 1,但如果該元素已經第二次或更多次相遇,則將其賦值為零:
l = [1 1 1 1 1 0 1 1 1 0 0]'
這個怎么做?
uj5u.com熱心網友回復:
的第二個輸出unique告訴您數字第一次出現的時間;也就是說,結果中的哪些位置應設定為1:
y = [21 19 15 17 18 19 25 36 48 19 19]';
[~ ,v] = unique(y, 'stable');
l = zeros(size(y));
l(v) = 1;
另一種使用隱式擴展的方法如下。這效率較低,因為它計算中間N × N矩陣,其中N是輸入的大小:
y = [21 19 15 17 18 19 25 36 48 19 19]';
l = ~any(triu(y==y.', 1), 1).';
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/514956.html
標籤:数组matlab
