# mtlb_logic

Matlab logical operators emulation function

## Description

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.