Filter löschen
Filter löschen

extract elements and build the remain vector

8 Ansichten (letzte 30 Tage)
Marko
Marko am 21 Dez. 2020
Kommentiert: Marko am 21 Dez. 2020
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]);

Akzeptierte Antwort

Image Analyst
Image Analyst am 21 Dez. 2020
Use setdiff():
N = 1600;
v = 1:N;
a = [2 59 87 113]
extracted = v(a)
otherIndexes = setdiff(1:length(v), a);
b = v(otherIndexes)

Weitere Antworten (1)

David Hill
David Hill am 21 Dez. 2020
a=v([1 21 31 41]);
b=v([2:20,22:30,32:40,42:end]);
  5 Kommentare
David Hill
David Hill am 21 Dez. 2020
b=v(~ismember(v,a));
Marko
Marko am 21 Dez. 2020
Perfect!
You are a genius!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by