Effacer les filtres
Effacer les filtres

How to make difference between two cell array?

1 vue (au cours des 30 derniers jours)
Mira le
Mira le le 2 Déc 2019
Réponse apportée : Matt J le 2 Déc 2019
>> NS
NS =
11×1 cell array
[ 1]
[ 2]
[ 3]
[ 4]
[ 5]
[1×2 double]
[1×2 double]
[1×2 double]
[1×2 double]
[1×3 double]
[1×3 double]
>> setL
setL =
1×7 cell array
[1] [2] [3] [4] [1×2 double] [1×2 double] [1×2 double]
I want to obtain element that contains in NS and not in setL
  2 commentaires
Rik
Rik le 2 Déc 2019
You mean something like setdiff?
Mira le
Mira le le 2 Déc 2019
yes, but how can I use sediff in cell array?

Connectez-vous pour commenter.

Réponse acceptée

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH le 2 Déc 2019
solution:
NSbutnotsetL=NS(~cellfun(@(y) any(cellfun(@(x) isequal(x,y),setL)),NS))
  1 commentaire
Mira le
Mira le le 2 Déc 2019
Thank you very much, it's really works

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 2 Déc 2019
fun=@(c) num2str(c,'%.20d ');
A=cellfun(fun,NS,'uni',0);
B=cellfun(fun,setL,'uni',0);
[~,ia]=setdiff(A,B);
result=NS(ia)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by