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