MATLAB:我如何检查矩阵中的任何元素是否为nan,如果是这样,则执行某些操作

Nis*_*nna 7 matlab if-statement nan

我知道我可以isnan用来检查个别元素,例如

for i=1:m
    for j=1:n
        if isnan(A(i,j))
            do something
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

但是,我想做的是

 if any(isnan(A))
      do something
 end
Run Code Online (Sandbox Code Playgroud)

当我试图这样做时,它不会进入参数,因为它被认为是假的.如果我只是打字any(isnan(A)),我就得到1 0 1.那我该怎么做?

Pur*_*uit 8

any(isnan(A(:)))
Run Code Online (Sandbox Code Playgroud)

既然A是一个矩阵,isnan(A)也是一个矩阵并且any(isnan(A))是一个向量,而该if语句确实需要一个标量输入.无论初始大小如何,使用(:)符号A均可展平为矢量.