Remove duplicate cells from cell array of different dimensions
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I have a cell array C of nx1, where each cell contains a vector of different values. Each vector has a different length, ranging from 3 to 8 or so. I would like to output another cell array, where all the duplicate cells in C have been removed. I also don't care about the order of the values within each vector. I suppose I could run a giant for loop (in this case n = 900) where I sort each vector with the cells of C and somehow use that.
I've looked up other similar questions online, but the only answers I've found so far only work if the dimensions of C are constant. My only other guess is that maybe I will have to convert it into an array, where there are Nans for the cells whose vectors are not long enough.
Does someone else spot a solution?
Thanks!
0 commentaires
Réponses (1)
Azzi Abdelmalek
le 13 Juil 2016
A=arrayfun(@(x) randi(10,1,randi([3 8])),1:900,'un',0); % Example
b=cellfun(@(x) sort([x nan(1,8-numel(x))]),A,'un',0)
c=cell2mat(b'')
[~,jj]=unique(c,'rows');
B=A(jj)
2 commentaires
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!