Obtaining data from matrix outside multiple ranges

Hi all,
I have a massive matrix, lets call it A:
A=[1 -2 3 4 5 6 7;
3 4 5 6 7 8 9;
4 5 6 6 8 9 10;
4 6 7 8 9 0 12;
2 11 5 7 2 7 21];
and I would like to obtain any row(s), where the 2nd column's data is within these two ranges: 0<A(:,2)<5 and 10<A(:,2)<15.
I know how to do this for one specified range, but not for two different ranges like above.

1 件のコメント

Stephen23
Stephen23 2017 年 1 月 17 日
@Kosta: your example is not very good because all rows contain a value within the limits that your specify. You should add some rows that do not fulfill these conditions.

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

 採用された回答

Stephen23
Stephen23 2017 年 1 月 17 日
編集済み: Stephen23 2017 年 1 月 17 日

0 投票

Use the or operator |:
A = [1 -2 3 4 5 6 7;
3 4 5 6 7 8 9;
4 5 6 6 8 9 10;
4 6 7 8 9 0 12;
2 11 5 7 2 7 21];
%
idx = 0 < A(:,2) < 5;
idy = 10 < A(:,2) < 15;
B = A(idx | idy, :)
giving
B =
1 -2 3 4 5 6 7
3 4 5 6 7 8 9
4 5 6 6 8 9 10
4 6 7 8 9 0 12
2 11 5 7 2 7 21
(All rows of your example matrix fulfill these conditions)

その他の回答 (1 件)

Kosta
Kosta 2017 年 1 月 17 日

0 投票

Works perfectly, thanks for your help!

カテゴリ

ヘルプ センター および File ExchangeTime Series についてさらに検索

質問済み:

2017 年 1 月 17 日

回答済み:

2017 年 1 月 17 日

Community Treasure Hunt

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

Start Hunting!

Translated by