【问题标题】:Operands to the || and && operators must be convertible to logical scalar values Matlab|| 的操作数和 && 运算符必须可转换为逻辑标量值 Matlab
【发布时间】:2014-05-11 13:51:56
【问题描述】:

我正在使用数组中的零组合在 Matlab 中检查对象的有效性。我想使用 && 运算符这样做,但是当我在单个 if 语句中使用它时,它给了我错误: || 的操作数和 && 运算符必须可转换为逻辑标量值。

我的代码:

for ii=1:1000
 if (Vec(ii,:) ~= 0) && (isvalid(MyObj))
%opeartions
end
end

【问题讨论】:

    标签: arrays matlab validation if-statement


    【解决方案1】:

    这些运算符执行类似于可比较的 C 运算符的快捷评估。那是一个|| b 仅评估 b 的 a 为假,a && b 仅评估 b 如果 a 为真。它不会逐点进行这种快捷评估。

    由于您的操作数中至少有一个似乎是布尔条件向量 (Vec(ii,:)~=0),Matlab 告诉您不能执行快捷计算。

    你把它放在一个 if 中,所以无论如何你都需要一个标量布尔值。我猜你的意思是标量第一个操作数为any(Vec(ii,:)~=0),而不是向量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-11
      • 2023-04-07
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 2012-02-15
      • 2014-08-18
      • 2021-12-23
      相关资源
      最近更新 更多