Найдите все элементы NaN в Массиве

Найденный этим:

http://snippets.dzone.com/posts/show/3339

10
задан Franck Dernoncourt 12 August 2012 в 11:26
поделиться

3 ответа

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

k=find(isnan(yourarray))

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

9
ответ дан 3 December 2019 в 13:19
поделиться

Как уже отмечалось, лучший ответ - 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) возвращает логический массив, массив истинных и ложных того же размера, что и a, с "истинным" в каждом месте, где есть nan, который может использоваться для индексации в.

24
ответ дан 3 December 2019 в 13:19
поделиться

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

lookfor nan

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

ISNAN True for Not-a-Number.

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

23
ответ дан 3 December 2019 в 13:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: