How to find column and row indexes of items that are +-inf or Nan ?

Hello
I have a very large matrix X where some elements can be -+inf or Nan. Currently I loop over all elements, check each one and handle it. It is taking forever. How can I easily find the [row,col] coordinates of such items ? I tried fiddling with isfinite(X) but in vain
Thanks much for any help

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 7 月 18 日
編集済み: Azzi Abdelmalek 2013 年 7 月 18 日

1 投票

A=[inf 1 4 nan;4 -inf 2 nan]; % Example
[ii,jj]=find(isnan(A)| isinf(A))
You can also use logical indexing, which is faster
idx=isnan(A)| isinf(A)

1 件のコメント

tci27
tci27 2013 年 7 月 18 日
Thanks much, got it, working some 1000 times faster than before :)

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

その他の回答 (2 件)

Jos (10584)
Jos (10584) 2013 年 7 月 18 日
編集済み: Jan 2013 年 7 月 18 日

1 投票

Using ISFINITE is fine. You just have to negate the outcome
Here is a small example, showing all the steps:
M = [1 Inf 3 ; 11 12 NaN]
tf = isfinite(M)
tf = ~tf
[ri,ci] = find(tf)
which you can combine into a single line if you understand each step
[ri,ci] = find(~isfinite(M))

2 件のコメント

Jan
Jan 2013 年 7 月 18 日
Fixed typo: "INFINITE" => "ISFINITE".
Jos (10584)
Jos (10584) 2013 年 7 月 18 日
thanks Jan

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

rui gao
rui gao 2018 年 11 月 25 日

0 投票

Hi. If I need omit these elements (inf) to calculate the variance, how to achieve it?

カテゴリ

ヘルプ センター および File ExchangeDates and Time についてさらに検索

タグ

質問済み:

2013 年 7 月 18 日

回答済み:

2018 年 11 月 25 日

Community Treasure Hunt

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

Start Hunting!

Translated by