How to find unique elements from every row within matrix??

y = [ 90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 -75
90 90 -45 0 0 -45 -45 0 -45 15 30 -30 75 -45 75 -45
90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 -30
90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 0
90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 15
90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 30
90 90 45 0 0 45 45 0 45 15 30 -30 75 45 75 45
90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 75
90 90 -45 0 0 45 45 0 -45 15 30 -30 75 -45 75 90];
unique(y) =9;
Please tell me to count unique value in every row, and if unique elements in row less than 9, that row should be deleted.

 Accepted Answer

y0 = sort(y,2);
out = y(sum([ones(size(y,1),1),diff(y0,[],2)~=0],2) >= 9,:);

1 Comment

use
out = y(sum([ones(size(y,1),1),diff(y0,[],2)~=0],2) >= ...
numel(unique(y)),:);

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!