Remove duplicates only for specific values

4 vues (au cours des 30 derniers jours)
Xingwang Yong
Xingwang Yong le 15 Déc 2020
Commenté : Xingwang Yong le 16 Déc 2020
A = [1,2,2,3,3,4,5,5,5,6];
value_to_remove = [2,3];
I have an array A, which contains some duplciates. I want to remove part of these duplicates, i.e. remove duplcates of 2 and 3, but leave duplicates of other elements unaffected.
The desired output is:
desired_output = [1,2,3,4,5,5,5,6];
Does someone know how to do this in a simple way?

Réponses (1)

SHIVAM KUMAR
SHIVAM KUMAR le 15 Déc 2020
Modifié(e) : SHIVAM KUMAR le 15 Déc 2020
After using that array of elements to value_to_remove .
A = [1,2,2,3,3,4,5,5,5,6];
value_to_remove = [2,3];
is_repeting=zeros(1,length(value_to_remove));
index=[];
for i=1:length(A)
for j=1:length(value_to_remove) %To get the index of elements to remove
if A(i)==value_to_remove(j)
if is_repeting(j)>0 %If it had occured once already
index=[index i]; %Save the index
else
is_repeting(j) =is_repeting(j) +1 ; %Otherwise increase the count for that term
end
end
end
end
B=[];
for i=1:length(A)
if i~=index(1:end)
B=[B A(i)];
end
end
B %Will display required contents of A if put without semicolon . The required matrix.
Here B will have the result.
  3 commentaires
SHIVAM KUMAR
SHIVAM KUMAR le 15 Déc 2020
You can call this as a function with those two vectors as arguments too to keep it straight.
Xingwang Yong
Xingwang Yong le 16 Déc 2020
I'll try it, thanks SHIVAM

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by