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
в вектор, независимо от первоначального размера.