mtlb_logic — Fonction d'émulation des opérateurs logiques de Matlab
Dans plusieurs cas particuliers, les opérateurs logiques se comportent différemment dans Matlab et dans Scilab :
Avec des opérandes complexes : Les opérateurs <
, <=
,
>
et >=
ne peuvent pas être utilisés dans Scilab
avec des opérandes complexes alors que cela est possible dans Matlab. Dans ce cas,
seule la partie réelle des opérandes est comparée.
Avec des matrices vides : Si les deux opérandes des opérateurs <
, <=
,
>
and >=
sont des matrices vides, Scilab renvoie un message d'erreur
alors que Matlab retourne une matrice vide. Pour les opérateurs ==
et ~=
,
si au moins une opérande est une matrice vide alors Matlab renvoie [] alors que Scilab
retourne un booléen %T ou %F.
La fonction mtlb_logic(A,symbol,B)
(avec "symbol" une chaîne de caractères contenant
le symbole de l'opérateur) est utilisée par
mfile2sci
pour remplacer A symbol B
quand il n'était pas
possible de savoir ce qu'étaient les opérandes pendant la conversion d'un code Matlab vers Scilab. Cette fonction va
déterminer la sémantique correcte pendant l'exécution. Pour obtenir un code plus performant
on peut remplacer les appels à mtlb_logic
:
Si A
et B
ne sont pas des complexes ni des matrices vides
mtlb_logic(A,symbol,B)
peut être remplacé par A symbol B
Attention : mtlb_logic
ne doit pas être utilisée pour une programmation manuelle.