当您处理数值时,比较操作符将返回逻辑假或逻辑真。在大多数情况下,逻辑false会将0.0加倍,而在大多数情况下,逻辑true会将1.0加倍。因此你可以实现
result = piecwise (CONDITION1, VALUE1, CONDITION2, VALUE2, 0)
作为
(条件1)。*(值1)+(条件1)。*(条件2)。*(值2)
在条件互斥的情况下,这通常可以简化为
但是,您必须注意,对于未选择的情况,值永远不会变为无穷大
(x ~= 0) .* (1/x) + (x == 0) .* (x ~= 0
用1表示x==0,用1/x表示其他x。这是因为如果你这样写,那么在0时你会得到(x~=0)。*(1/0)这将是0(假)*无穷大,这将给出该项的NaN,而不是0。