Вопрос

Есть ли команда в 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.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top