Selecting only some rows of a matrix

Hi, I have a matrix A mxn and I want to select only some of its rows satisfying this criterion: A(i,1)<=1e-03 && A(i,1)>=-1e-03 && A(i,2)<=1e-03 A(i,2)>=-1e-03 && A(i,3:end)<= 1e-03. I can't use loops.
Could you help me? Thanks

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 12 月 12 日

0 投票

idx=A(:,1)<=1e-03 & A(:,1)>=-1e-03 & A(:,2)<=1e-03 & A(:,2)>=-1e-03 & all(A(:,3:end)<= 1e-03,2)
B=A(idx,:)

その他の回答 (2 件)

Simon
Simon 2013 年 12 月 12 日
編集済み: Simon 2013 年 12 月 12 日

0 投票

Hi!
So, what is "i"? Did you mean ":"? I assume ":" here.
Start by looking at the first criterion, you can write
crit1 = A(:, 1) <= 1e-3;
This will give you a logical vector. Do the same with the other criterions and combine them.
Hint: For the last criterion the function "all" is useful.
Andrei Bobrov
Andrei Bobrov 2013 年 12 月 12 日

0 投票

A(all(A(:,1:2) >= -1e-3,2) & all(A <= 1e-3,2),:)

カテゴリ

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

質問済み:

MRC
2013 年 12 月 12 日

回答済み:

2013 年 12 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by