Найти все элементы NaN внутри массива

Есть ли команда в MATLAB, которая позволяет мне находить все элементы NaN (Not-a-Number) внутри массива?

Ответ 1

Я только что нашел ответ:

k=find(isnan(yourarray))

k будет списком элементов элемента NaN.

Ответ 2

Как уже отмечалось, лучшим ответом является isnan() (хотя +1 для мета-ответа древесной щепы). Более полный пример использования его с логической индексацией:

>> a = [1 nan;nan 2]

a =

  1   NaN
NaN     2

>> %replace nan with 0's
>> a(isnan(a))=0

a =

 1     0
 0     2

isnan (a) возвращает логический массив, массив истинных и ложных - тот же размер, что и a, с "истинным" каждым местом есть нан, который можно использовать для index в.

Ответ 3

Пока isnan - правильное решение, я просто укажу, как его найти. Используйте lookfor. Если вы не знаете имя функции в MATLAB, попробуйте выполнить поиск.

lookfor nan

быстро предоставит вам имена некоторых функций, которые работают с NaN, а также предоставит вам первую строку своих блоков помощи. Здесь он бы перечислил (среди прочего)

ISNAN True для не-номера.

который, безусловно, является функцией, которую вы хотите использовать.