MATLAB:检查'if'语句是否为真的优雅方法

Cap*_*rog 2 matlab if-statement

我正在编写一个解决方案,我需要检查一个数组是否包含任何NaN值.如果没有,那么我可以继续运行数据上的函数.这是我目前的解决方案:

if find(isnan(inputData))
% Nothing goes here since I only want the function to run if the 'if' statement fails
else
    doFunction(inputData);
end
Run Code Online (Sandbox Code Playgroud)

是否有一种优雅的方式来否定'if'陈述; 从而避免空的第一个条款?

Hig*_*ark 15

if ~any(isnan(x(:)))
    doFunction(inputData);
end
Run Code Online (Sandbox Code Playgroud)

这对你来说够优雅吗?如果没有,你觉得怎么样?

if all(isfinite(x(:)))
    doFunction(inputData);
end
Run Code Online (Sandbox Code Playgroud)

  • Whaddya是什么意思?我以为你想避免一个空的if子句,这就是你所拥有的. (4认同)
  • @CaptainProg:一般的方法是否定if语句中的条件.但是,像在OP中所做的那样编码可以提高可读性. (3认同)