Effacer les filtres
Effacer les filtres

How to eliminate array which contain zero, negative values, repeated values, etc constraint?

2 vues (au cours des 30 derniers jours)
Hi, I have n=6 and for example I have several set of points ( with 6 elements),
a=[1 5 1 6 2 6];
b=[2 5 1 6 2 5];
c=[3 5 1 6 2 4];
d=[0 4 1 6 3 7];
e=[1 4 1 6 3 6];
f=[-1 3 1 6 4 8];
I wish to eliminate the set which contain zero, negative values,elements greater than n=6 and repeated values. At the end, left set c. The others are eliminated due to:
a-repeated value 1 and 6
b-repeated value 2 and 5
d-contain zero, and 7 (which is greater than 6)
e-repeated value 1 and 6
f-contain negative value and 8 (greater than 6).
Thanks in advance.

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 11 Nov 2014
Modifié(e) : Andrei Bobrov le 11 Nov 2014
a=[1 5 1 6 2 6];
b=[2 5 1 6 2 5];
c=[3 5 1 6 2 4];
d=[0 4 1 6 3 7];
e=[1 4 1 6 3 6];
f=[-1 3 1 6 4 8];
M = [a;b;c;d;e;f];
out = M(all(M > 0,2) & cellfun(@(x)numel(unique(x)) == numel(x),num2cell(M,2)),:);
  4 commentaires
Grace
Grace le 11 Nov 2014
Modifié(e) : Grace le 11 Nov 2014
Yup, get it. add in
all(M<=6,2)
Thanks :)
Andrei Bobrov
Andrei Bobrov le 11 Nov 2014
in your case
out = M(all(diff(sort(M,2),1,2) == 1,2) & all(M <= 6,2),:);

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by