how to remove repeating rows from a matrix?

3 次查看(过去 30 天)
I know "union" can be used to achieve this, for example, there is an A,
A =
1 2
1 2
1 3
B=union(a,a,'rows')
B =
1 2
1 3
but if A is big(In my case, A is a 20,000*30 matrix), it will be out of memory.
??? Out of memory. Type HELP MEMORY for your options.
ARE there simple ways to delete repeating arrows in a matrix? THX!
  2 个评论
Florin Neacsu
Florin Neacsu 2011-10-12
Hi,
Are your repeating lines always one after another? If so, you could use diff and look for [0 0].
Zhang
Zhang 2011-10-13
No, they are not always one after another.thx

请先登录,再进行评论。

回答(2 个)

Andrei Bobrov
Andrei Bobrov 2011-10-12
unique(A,'rows')
  1 个评论
Zhang
Zhang 2011-10-13
Thx, Andrei, yes, it is more simple, but still out of memory in my real case

请先登录,再进行评论。


Steven
Steven 2011-10-12
Or even simpler for quick remove :
A(2,:)=[]
will give you B.

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by