delete elements from the given array

19 views (last 30 days)
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]?

Accepted Answer

Ameer Hamza
Ameer Hamza on 1 Dec 2020
Try this
X=[1,2,3,4,5,6];
idx = find(mod(X,2)==0);
X(idx(1:end-1)) = []
  2 Comments
Stephan
Stephan on 1 Dec 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"

Sign in to comment.

More Answers (1)

Stephan
Stephan on 1 Dec 2020
X(2:2:end-1) = []
  2 Comments
Oksi Moon
Oksi Moon on 1 Dec 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 on 1 Dec 2020
Edited: Stephan on 1 Dec 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

Sign in to comment.

Categories

Find more on Data Types 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!