Matlab中是否有另一种and()方法,它不检查语法,一旦发现第一个false,就会返回false?

Matlab中是否有另一种and()方法,它不检查语法,一旦发现第一个false,就会返回false?,matlab,Matlab,Matlab中是否有一种方便的和() 例如,我想 and(0,a), and(0,error()), 两者都返回false,而不是返回错误消息。一旦最早的输入参数返回false,我就不再使用后续的输入参数,我很乐意忽略语法错误。但Matlab不是 (对我来说,更可能的情况是前面输入的false案例涵盖了后面输入中的任何语法错误。) 有办法解决这个问题吗?如果我在varargin上使用(Matlab)循环编写和()的备选方案,该备选方案会更慢吗?使用&&运算符解决您的问题 0 &&

Matlab中是否有一种方便的
和()

例如,我想

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

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


有办法解决这个问题吗?如果我在
varargin
上使用(Matlab)循环编写
和()
的备选方案,该备选方案会更慢吗?

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

0 && a

0 && error()
会回来的

ans =

  logical

   0
当然,即使
a
未定义


注意:
和()。中的不同答案和注释将更详细地解释。

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

0 && a

0 && error()
会回来的

ans =

  logical

   0
当然,即使
a
未定义

注意:
和()。中的不同答案和注释将详细解释。

MATLAB解释器(就像我遇到的任何其他解释器一样)在调用函数之前解析函数的所有输入参数。向函数传递求值参数的结果。因此,不可能让函数控制解析其输入参数

没有与短路逻辑AND功能相当的功能。函数
相当于
,不会短路。

MATLAB解释器(就像我遇到的任何其他解释器一样)在调用函数之前解析函数的所有输入参数。向函数传递求值参数的结果。因此,不可能让函数控制解析其输入参数



没有与短路逻辑AND功能相当的功能。函数
相当于
&
,并且不会短路。

使用
&
操作符。为什么不使用
如果else
?@rahnema1:
如果else
不能变成
函数句柄
。只需使用普通函数,如果需要,您可以使用它的句柄。@rahnema1:除此之外。。对于
&&
&&
是否与
和()
除了语法检查之外?使用
&
运算符。如果else
,为什么不使用
呢?@rahnema1:
如果else
不能成为
函数的句柄
。只需使用普通函数,如果需要的话,你可以使用它的句柄。@rahnema1:我在寻求替代方案。。对于
&
&
是否与
和()?在语法方面使用
&
是否有任何限制?
和()
&
相同,这是逻辑运算符
&&
是一个带有短路的逻辑and运算符,这意味着它完全可以实现您想要的功能。它只在找到第一个false之前执行。与
&
相比,没有语法限制。
和()
&
之间有什么区别吗?在语法方面使用
&
是否有任何限制?
和()
&
相同,这是逻辑运算符
&&
是一个带有短路的逻辑and运算符,这意味着它完全可以实现您想要的功能。它只在找到第一个false之前执行。与
&
相比,没有语法限制。为什么解释器必须解析所有参数?@Argyll:好的,我想可能不是严格必要的。但是延迟评估肯定会导致更复杂的解释器,以及延迟和混淆错误消息。那么,错误消息是必要的原因吗?为什么它做的检查更少会更复杂?@Argyll:还有执行顺序的期望:如果函数有副作用,例如在屏幕上打印一些东西,你希望这些函数以什么顺序执行它们的任务
fun(a(),b())
。是否按照表达式的顺序将函数作为嵌套表达式进行求值?从
fun
的第一行开始,直到需要
a
;当需要
a
时,评估
a()
,这可能还包括
fun
。这难道不是函数式语言的自然现象吗?为什么解释器必须解析所有参数?@Argyll:好吧,我想可能不是严格必要的。但是延迟评估肯定会导致更复杂的解释器,以及延迟和混淆错误消息。那么,错误消息是必要的原因吗?为什么它做的检查更少会更复杂?@Argyll:还有执行顺序的期望:如果函数有副作用,例如在屏幕上打印一些东西,你希望这些函数以什么顺序执行它们的任务
fun(a(),b())
。是否按照表达式的顺序将函数作为嵌套表达式进行求值?从
fun
的第一行开始,直到需要
a
;当需要
a
时,评估
a()
,这可能还包括
fun
。这不是函数式语言的自然特征吗?