Extraction of unique arrays in a cell

2 views (last 30 days)
Assume there is a cell of the size 1 by N. Each cell contains an array. Some of the arrays are equal. How can I remove duplicate ones? Is there a "unique" function for cells?

Accepted Answer

Taylor
Taylor on 19 Sep 2024
One possible approach:
% Assume 'cellArray' is your 1xN cell array containing arrays
cellArray = {
[1, 2, 3],
[4, 5, 6],
[1, 2, 3], % Duplicate
[7, 8, 9],
[4, 5, 6] % Duplicate
};
% Convert each cell's array to a string representation
arrayStrings = cellfun(@mat2str, cellArray, 'UniformOutput', false);
% Find unique string representations and their indices
[~, uniqueIndices] = unique(arrayStrings, 'stable');
% Use the unique indices to create a cell array without duplicates
uniqueCellArray = cellArray(uniqueIndices);
% Display the result
disp('Cell array with duplicates removed:');
disp(uniqueCellArray);

More Answers (0)

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!