extracting a range of values from a vector

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!

 採用された回答

Ameer Hamza
Ameer Hamza 2020 年 11 月 18 日
編集済み: Ameer Hamza 2020 年 11 月 18 日

1 投票

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 件のコメント

giuseppe insignito
giuseppe insignito 2020 年 11 月 18 日
I've found something even easier:
indx_w = indx(indx >= 1 & indx <= 4)
:)
HabenG
HabenG 2021 年 12 月 1 日
Clutch!

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

その他の回答 (0 件)

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by