フィルターのクリア

extract elements and build the remain vector

8 ビュー (過去 30 日間)
Marko
Marko 2020 年 12 月 21 日
コメント済み: Marko 2020 年 12 月 21 日
Hello Community,
i need your help.
A vector v has 128 elements with random numbers.
The elements of index 1 21 31 41 should be etracted, and saved as vector a.
the remain elements of vector v should be saved as vector b.
my version consist two for loops which is in deed a bad solution for large vectors.
PS: the vectors are not constant.
maybe someone could finish the algorithm:
v = 1:128;
a = v([1 21 31 41]);

採用された回答

Image Analyst
Image Analyst 2020 年 12 月 21 日
Use setdiff():
N = 1600;
v = 1:N;
a = [2 59 87 113]
extracted = v(a)
otherIndexes = setdiff(1:length(v), a);
b = v(otherIndexes)
  1 件のコメント
Marko
Marko 2020 年 12 月 21 日
Perfect!
A nice code snippet!

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

その他の回答 (1 件)

David Hill
David Hill 2020 年 12 月 21 日
a=v([1 21 31 41]);
b=v([2:20,22:30,32:40,42:end]);
  5 件のコメント
David Hill
David Hill 2020 年 12 月 21 日
b=v(~ismember(v,a));
Marko
Marko 2020 年 12 月 21 日
Perfect!
You are a genius!

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

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by