首页 > 解决方案 > Matlab 中是否存在 and() 的替代方法,它不检查语法并在找到第一个 false 后立即返回 false?

问题描述

在 Matlab 中是否有一个方便的替代方法and(),它不检查是否存在、输入或输出参数的数量,并且一旦false找到第一个参数就返回 false,而不评估后续输入中的表达式?

例如,我想

and(0,a),
and(0,error()),

两者都返回 false 而不是返回错误消息。一旦最早的输入参数返回false,我就不再使用后续的输入参数,我很乐意忽略语法错误。但Matlab不是。

(对我来说,更可能的false情况是前面输入的情况涵盖了后面输入中的任何语法错误。)

有没有解决的办法?如果我and()用(Matlab)循环编写替代方案varargin,替代方案会更慢吗?

标签: matlab

解决方案


使用 && 运算符可以解决您的问题,

0 && a

0 && error()

将返回

ans =

  logical

   0

当然,即使a是未定义的。

警告:and()可以采用(语法检查)数组参数,而&&不能。这个问题中的不同答案和评论更详细地解释了。


推荐阅读