delete elements from the given array

13 vues (au cours des 30 derniers jours)
Oksi Moon
Oksi Moon le 1 Déc 2020
Commenté : Stephan le 1 Déc 2020
for example. an array X is given, which is X=[1,2,3,4,5,6] how to delete all even numbers of this array except the last even number(6)? In other words, how to make this array look like X=[1,3,5,6]?

Réponse acceptée

Ameer Hamza
Ameer Hamza le 1 Déc 2020
Try this
X=[1,2,3,4,5,6];
idx = find(mod(X,2)==0);
X(idx(1:end-1)) = []
  2 commentaires
Oksi Moon
Oksi Moon le 1 Déc 2020
Thank you very much!
Stephan
Stephan le 1 Déc 2020
X=[1,2,3,4,5,6,7]
idx = find(mod(X,2)==0);
X(idx(1:end-1)) = []
results in:
X =
1 2 3 4 5 6 7
X =
1 3 5 6 7
you stated:
"...what if I have 7 elements [1,2,3,4,5,6,7] and I still need to get [1,3,5,6]. i need to leave the last even number. not just the last number"

Connectez-vous pour commenter.

Plus de réponses (1)

Stephan
Stephan le 1 Déc 2020
X(2:2:end-1) = []
  2 commentaires
Oksi Moon
Oksi Moon le 1 Déc 2020
thank you! what if I have 7 elements [1,2,3,4,5,6,7] and I still need to get [1,3,5,6]. i need to leave the last even number. not just the last number
Stephan
Stephan le 1 Déc 2020
Modifié(e) : Stephan le 1 Déc 2020
X=[1,2,3,4,5,6,7]
idx = find(mod(X,2)==0,1,'last');
X(idx+1:end) = [];
X(2:2:idx-1) = []
gives:
X =
1 2 3 4 5 6 7
X =
1 3 5 6

Connectez-vous pour commenter.

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