How to delete a duplicate cells?

1 visualización (últimos 30 días)
NHJ
NHJ el 11 de Ag. de 2022
Comentada: NHJ el 11 de Ag. de 2022
How to delete a duplicate cells? For example I have 1x4 cells and some cell have the same value. I want to delete the cell, so that my output cell will become smaller.
%Create cell in a cell.
F = {1, 2, 3, 4}
F{1,1} = [3 8;6 4]
F{1,2} = [6 9;7 3]
F{1,3} = [3 8;6 4]
F{1,4} = [6 9;7 3]
%Delete duplicate cells
Z = unique(F)
I get an error because the function unique only can be used with a vector. Suppose the output only have cell F{1,1} and F{1,2}.
How to do that? Thanks in advance

Respuesta aceptada

Stephen23
Stephen23 el 11 de Ag. de 2022
Editada: Stephen23 el 11 de Ag. de 2022
F = {[3,8;6,4],[6,9;7,3],[3,8;6,4],[6,9;7,3]};
F{:}
ans = 2×2
3 8 6 4
ans = 2×2
6 9 7 3
ans = 2×2
3 8 6 4
ans = 2×2
6 9 7 3
for ii = numel(F):-1:2
for jj = 1:ii-1
if isequal(F{ii},F{jj})
F(ii) = [];
break
end
end
end
F{:}
ans = 2×2
3 8 6 4
ans = 2×2
6 9 7 3
  2 comentarios
NHJ
NHJ el 11 de Ag. de 2022
Thank you, this is what I try to do. One more thing, if the value in the cells have a negative sign (negative values), how to ignore the sign? I want it to compare the values only. For example F = {[3,8;6,4],[6,9;7,3],[-3,-8;6,4],[6,-9;7,3]}. Thak you in advance
NHJ
NHJ el 11 de Ag. de 2022
I add abs function in the code to have only positive value and I get what I want.
for ii = numel(F):-1:2
for jj = 1:ii-1
if isequal(abs(F{ii}),abs(F{jj}))
F(ii) = [];
break
end
end
end
F{:}

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by