Delete double cell array entries
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
How can I delete double entries in a cell array? I don't want to use a loop. For example I have:
CellArray={[1 2 3] [1 2] [3 5 6 7] [1 2] [2 4] }
And as a result I want to get this:
NewCellArray={[1 2 3] [1 2] [3 5 6 7] [2 4] }
Thank you very much and have a nice day!
0 comentarios
Respuesta aceptada
Azzi Abdelmalek
el 20 de Mzo. de 2013
Editada: Azzi Abdelmalek
el 20 de Mzo. de 2013
CellArray={[1 2 3] [1 2] [3 5 6 7] [1 2] [2 4] };
m=max(cellfun(@numel,CellArray));
v=cellfun(@(x) [x inf(1,m-numel(x))],CellArray,'un',0);
[~,ii]=unique(cell2mat(v'),'rows');
CellArray=CellArray(ii)
Más respuestas (2)
Friedrich
el 20 de Mzo. de 2013
Hi,
one line:
NewCellArray = cellfun(@str2num, unique(cellfun(@num2str, CellArray,'UniformOutput',false)),'UniformOutput',false)
Babak
el 20 de Mzo. de 2013
CellArray={[1 2 3] [1 2] [3 5 6 7] [1 2] [2 4] };
NewCellArray = [CellArray(1:3) CellArray(5)];
2 comentarios
Azzi Abdelmalek
el 20 de Mzo. de 2013
CellArray is just an example, I guess his array is much bigger.
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!