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
 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.