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

8 次查看(过去 30 天)
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
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)

更多回答(2 个)

Jos (10584)
Jos (10584) 2013-7-18
编辑:Jan 2013-7-18
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))

rui gao
rui gao 2018-11-25
Hi. If I need omit these elements (inf) to calculate the variance, how to achieve it?

类别

Help CenterFile Exchange 中查找有关 Numeric Types 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by