mtlb_logic — Matlab logical operators emulation function
Matlab and Scilab logical operator behave differently in some particular cases:
With complex operands: The <
, <=
, >
and >=
operators can not be used into Scilab with complex operands, while
in Matlab they can. And in this case, only real part of complex operands is compared.
With empty matrices: If both operands of <
, <=
,
>
and >=
operators are empty matrices, Scilab returns an error message, while
Matlab returns an empty matrix. For operators ==
and ~=
,
if at least one operand is an empty matrix, Matlab returns [] while Scilab returns a boolean value %T or %F.
The function mtlb_logic(A,symbol,B)
(with "symbol" a character string
containing the operator symbol) is used by
mfile2sci
to replace A symbol B
when it was not
possible to know what were the operands while porting Matlab code to Scilab. This function will
determine the correct semantic at run time. If you want to have a
more efficient code it is possible to replace mtlb_logic
calls:
If both A
and B
are not complex values nor empty matrices
mtlb_logic(A,symbol,B)
may be replaced by A symbol B
.
Caution: mtlb_logic
has not to be used for hand coded functions.