How to quickly extract a unique list of rows from a cell array?

4 次查看(过去 30 天)
So, I have an unacceptably large cell array, with far too many rows to reasonably display, and only 5 columns.
Each column contains a different format (some string, some numeric).
I know that many of the rows of the array are duplicated, so what I would like to do is to quickly and simply remove these duplicates.
Has anyone got a quick way of achieving this?
  1 个评论
Iain
Iain 2013-6-7
编辑:Iain 2013-6-7
Array = {45 654 9841 'ra' 'rb';
45 684 9841 'ra' 'rb';
...
45 654 9841 'ra' 'rb';
45 684 9842 'ra' 'rb';
1 651 91 'ra' 'ra';

请先登录,再进行评论。

回答(1 个)

Azzi Abdelmalek
Azzi Abdelmalek 2013-6-7
[idx,idx]=unique(cell2mat([cellfun(@num2str,A(:,1:3),'un',0) A(:,4:5)]),'rows')
out=A(idx,:)

类别

Help CenterFile Exchange 中查找有关 Multidimensional Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by