Azzera filtri
Azzera filtri

extracting a range of values from a vector

15 visualizzazioni (ultimi 30 giorni)
I have an array indx = [ 1 7 4 8 11 6 3] and I need to extract from 1 (minimum) to 4 (maximum) of the actual value (Not the index!) of the elements of indx and put them into another array indx_w (wich results in this case = [1 3 4])
How to do it?
indx_w = ????
thanks!

Risposta accettata

Ameer Hamza
Ameer Hamza il 18 Nov 2020
Modificato: Ameer Hamza il 18 Nov 2020
You can use logical indexing
indx = [ 1 7 4 8 11 6 3];
lb = 1;
ub = 4;
mask = (indx >= lb) & (indx <= ub);
indx_w = indx(mask)
If you also want the output to be sorted
indx_w = sort(indx_w)
  2 Commenti
giuseppe insignito
giuseppe insignito il 18 Nov 2020
I've found something even easier:
indx_w = indx(indx >= 1 & indx <= 4)
:)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by