MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply TodayTo resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

Asked by Connor on 23 Apr 2013

I am looking for a way to delete repeated rows without using the unique function. For example if I have the matrix

A=[2 4 8; 8 2 4; 3 3 -6]

one of the first two rows needs to be deleted. Order doesn't need to be kept. I'm sure I need to use sort, and maybe find or diff. I'm not exactly sure how to go about it.

Any and all help is appreciated!

*No products are associated with this question.*

Answer by Matt J on 23 Apr 2013

Edited by Matt J on 23 Apr 2013

Hint:

>> sortrows(sort(A,2))

ans =

-6 3 3 2 4 8 2 4 8

You should now find diff() rather helpful.

Connor on 23 Apr 2013

I'm still kind of lost where I go from there. Using diff will give me the difference between each element in each row. So when there are three zeros, I know there is a duplicate row. How do I translate that into eliminating a row? I tried using find, but I'm not too familiar with the find function. Thanks for your help.

Cedric Wannaz on 23 Apr 2013

Lookup ALL and ANY in the doc; you could probably use them at some point, and be aware that ALL, ANY, DIFF, and many others operate along a dimension that you can specify.

## 4 Comments

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/73271#comment_145088

Why don't you want to use the unique function? It's second output is gonna be real helpful.

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/73271#comment_145093

Guessing this is homework. That's the usual motivator for

notwanting to use particular functions.Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/73271#comment_145101

It's strange that you consider the first two rows of A to be "repeated", since the order of the elements is different (one is a permutation of the other). Is this what you want?

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/73271#comment_145124

They are considered repeated because order isn't important here. This is a very small part for my project, and isn't required. My professor said if we could do this we could get some extra credit. Thanks!