Deleting duplicate values in matrix

I have a dataset in which i have duplicate vaues(same values),i want to delete it as
S={
'' 'c1' 'c2' 'c3'
'p-a' 'pso' 'mpso' 'pso'
'p-a' 'pso' 'mpso' 'pso'
'p-a' 'pso' 'mpso' 'pso'
'k' 'spsp' 'pso' 'mpso'
'y-b' 'pso' 'pso' 'spso'
'y-b' 'pso' 'pso' 'spso'}
i need output as
out={
'p-a' 'pso' 'mpso' 'pso'
'k' 'spsp' 'pso' 'mpso'
'y-b' 'pso' 'pso' 'spso'}
please help

 Accepted Answer

[trash,idx] = unique(S(:,1),'stable');
S(idx,:)
Note that only the first column is considered to be the key.

6 Comments

am getting error
Error using cell/unique (line 28) Unrecognized option.
Honglei Chen
Honglei Chen on 27 Aug 2012
Edited: Honglei Chen on 27 Aug 2012
If it does not solve your issue, please do not accept an answer. The error you see could be due to you are using an older version of MATLAB that does not support 'stable' option.
ok can u tell how to solve it please am using 2010a
Jan
Jan on 27 Aug 2012
Edited: Jan on 27 Aug 2012
Omit the "stable", kash. And please be so kind to answer my question: Why does the first row disappear in the output? It is a unique line, so it should be kept according to your explanations.
If using the first row is not enough for your problem, take the time to explain such details. Try unique(S, 'rows') instead.
You've asked 220 questions now and still accept an answer, which does not solve your problem? Surprising. Again I suggest to read, consider and respect the forum rules, which are explained e.g. here: http://www.mathworks.com/matlabcentral/about/answers/
[trash,idx] = unique(S(:,1),'first');
out = S(sort(idx),:);
Thanks andrei and Jan by mistake i clicked Accepy the answer button

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!