MATLAB: Как проверить, является ли какой-либо элемент в моей матрице nan и сделать что-то, если это так

Я знаю, что могу использовать isnan для проверки отдельных элементов, таких как

for i=1:m
    for j=1:n
        if isnan(A(i,j))
            do something
        end
    end
end

однако вместо этого я хочу сделать

 if any(isnan(A))
      do something
 end

когда я пытался это сделать, он не входит в аргумент, потому что он считается ложным. Если я просто наберу any(isnan(A)), Я просто 1 0 1. Так как же мне это сделать?

1 ответов


any(isnan(A(:)))

С A матрица, isnan(A) также является матрицей и any(isnan(A)) - это вектор, а if оператор действительно хочет скалярный ввод. С помощью (:) нотации плющит A в вектор, независимо от первоначального размера.