Найти все элементы NaN внутри массива
Вопрос
Есть ли команда в MATLAB, которая позволяет мне найти все NaN элементы (Не являющиеся числом) внутри массива?
Решение 3
Я только что нашел ответ:
k=find(isnan(yourarray))
k будет списком обозначений элементов NaN.
Другие советы
Как уже отмечалось, лучший ответ - isnan() (хотя + 1 за мета-ответ woodchips).Более полный пример того, как использовать его с логической индексацией:
>> a = [1 nan;nan 2]
a =
1 NaN
NaN 2
>> %replace nan's with 0's
>> a(isnan(a))=0
a =
1 0
0 2
isnan(a) возвращает логический массив, массив true & false того же размера, что и a, с "true" в каждом месте, где есть nan, который может быть использован для индекс в a.
Хотя isnan - правильное решение, я просто укажу способ, которым его нашли.Используйте lookfor.Если вы не знаете имени функции в MATLAB, попробуйте lookfor.
lookfor nan
быстро выдаст вам названия некоторых функций, которые работают с NANS, а также предоставит вам первую строку их справочных блоков.Здесь было бы перечислено (среди прочего)
ISNAN Верно для Not-a-Number.
это явно та функция, которую вы хотите использовать.