delete elements from the given array

10 ビュー (過去 30 日間)
Oksi Moon
Oksi Moon 2020 年 12 月 1 日
コメント済み: Stephan 2020 年 12 月 1 日
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]?

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 12 月 1 日
Try this
X=[1,2,3,4,5,6];
idx = find(mod(X,2)==0);
X(idx(1:end-1)) = []
  2 件のコメント
Oksi Moon
Oksi Moon 2020 年 12 月 1 日
Thank you very much!
Stephan
Stephan 2020 年 12 月 1 日
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"

サインインしてコメントする。

その他の回答 (1 件)

Stephan
Stephan 2020 年 12 月 1 日
X(2:2:end-1) = []
  2 件のコメント
Oksi Moon
Oksi Moon 2020 年 12 月 1 日
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 2020 年 12 月 1 日
編集済み: Stephan 2020 年 12 月 1 日
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

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by