extract elements and build the remain vector

4 vues (au cours des 30 derniers jours)
Marko
Marko le 21 Déc 2020
Commenté : Marko le 21 Déc 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]);

Réponse acceptée

Image Analyst
Image Analyst le 21 Déc 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)
  1 commentaire
Marko
Marko le 21 Déc 2020
Perfect!
A nice code snippet!

Connectez-vous pour commenter.

Plus de réponses (1)

David Hill
David Hill le 21 Déc 2020
a=v([1 21 31 41]);
b=v([2:20,22:30,32:40,42:end]);
  5 commentaires
David Hill
David Hill le 21 Déc 2020
b=v(~ismember(v,a));
Marko
Marko le 21 Déc 2020
Perfect!
You are a genius!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Get Started with MATLAB dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by