MATLAB: Extracting a range of values from a vector

arrayextract

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!

Best Answer

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)