MATLAB Answers

How to remove duplicate rows from a matrix?

I am running simulations with 5 inputs and 4 outputs for 1000 iterations. The results are stored in a 1000x9 Matrix. Lets name this 'Results'. Each of the rows correspond to one iteration. The first 5 columns in each row correspond to the input values and the last four columns in each row are the ouputs.

I need to remove the rows from the matrix which have the same input conditions. So for any 2 rows, say i and j

Results(i,1)==Results(j,1) && Results(i,2)==Results(j,2) && Results(i,3)==Results(j,3) && Results(i,4)==Results(j,4) && Results(i,5)==Results(j,5)

I have to remove either row i or row j

I would appreciate any and all help :)

  0 Comments

Sign in to comment.

Products


Release

R2016a

1 Answer

Answer by Andrei Bobrov
on 18 May 2018 at 12:59
 Accepted Answer

[~,b,c] = unique(Results(:,1:5),'rows','stable');
out = Results(b(histcounts(c,1:numel(b)+1) == 1),:);

  1 Comment

Sign in to comment.


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today