如何删除Matlab矩阵中的某些行?

时间:2011-03-23 15:43:12

标签: matlab matrix

我有一个包含4892行和4列的双打矩阵。

假设我在第3和第4列中有N行具有相同的值(但不一定在第1列和第2列中),我只想在组中留下一行。

一个例子:

1738 1738 8611 8611

1739 1738 8611 8611

1739 1739 8611 8611

我想在这一组中只留下一行(与哪一行无关)。

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:5)

使用UNIQUE。默认情况下,这将保持 最后一行。

%# array is your 4892-by-4 array
%# call 'unique(array(:,3:4),'rows','first') if you want to keep the first row
[~,idx] = unique(array(:,3:4),'rows');

%# use sort if you want to preserve the original order of rows
trimmedArray = array(sort(idx),:);