Remove duplicates only for specific values

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?

답변 (1개)

SHIVAM KUMAR
SHIVAM KUMAR 2020년 12월 15일
편집: SHIVAM KUMAR 2020년 12월 15일

0 개 추천

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

SHIVAM KUMAR
SHIVAM KUMAR 2020년 12월 15일
편집: SHIVAM KUMAR 2020년 12월 15일
I hope this is simple enough. As could not think of any simpler approach.
SHIVAM KUMAR
SHIVAM KUMAR 2020년 12월 15일
You can call this as a function with those two vectors as arguments too to keep it straight.
Xingwang Yong
Xingwang Yong 2020년 12월 16일
I'll try it, thanks SHIVAM

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

태그

질문:

2020년 12월 15일

댓글:

2020년 12월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by