2016-08-22 3 views
1

У меня есть 121x601 matrix с некоторыми значениями NaN.numel (isnan (A)) == numel (~ isnan (A)) == numel (A)?

Я не могу понять причину следующего несоответствия:

>> size(A,1)*size(A,2) 

ans = 

     72721 

>> numel(~isnan(A)) 

ans = 

     72721 

>> numel(isnan(A)) 

ans = 

     72721 

Может кто-нибудь указать его мне, пожалуйста?

ответ

4

numel возвращает количество элементов матрицы независимо от того, что они представляют. isnan(A) преобразует каждый элемент в A в булево, в зависимости от того, является ли соответствующий элемент NaN или нет. Но обе матрицы isnan(A) и ее дополнение ~isnan(A) имеют одинаковое количество элементов, а именно количество элементов исходной матрицы, A.

Подробнее о numel и isnan.

+0

so 'numel (A (~ isnan (A)))' это то, что я ищу! Благодаря! – shamalaia

+6

@shamalaia Или просто 'sum (~ isnan (A))'. – Holt

+2

@shamalaia Я думаю, вы будете искать 'sum (~ isnan (A))' ... – rubenvb

Смежные вопросы