How Detect duplicate value in each column and replace first value with zero?

조회 수: 2 (최근 30일)
For example
A = [ 5 3 2 5 1 3 1 1 2 2;
5 8 6 6 1 4 4 2 3 3;
7 9 9 7 4 8 10 6 4 7;
8 10 10 9 9 8 10 6 5 7];
In first column 5 duplicate and in five column 1 duplicate I want replace first duplicated values with 0
  댓글 수: 3
the cyclist
the cyclist 2017년 4월 1일
편집: the cyclist 2017년 4월 1일
I think they mean that the number 5 is duplicated in the first column, and that the number 1 is duplicated in the fifth column. (Similarly the number 8 is duplicated in the sixth column, and so on.)

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

채택된 답변

the cyclist
the cyclist 2017년 4월 1일
If your values are always sorted, as in your example, then I believe this will compactly do what you want:
indexToDuplicates = [nan(1,size(A,2));diff(A)]==0;
A(indexToDuplicates) = 0;
You don't even have to split that into two lines, but I thought it might be clearer what I am doing. You could do
A([nan(1,size(A,2));diff(A)]==0) = 0;

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Entering Commands에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by