mtlb_isa — Fonction d'émulation de la fonction Matlab isa
Il n'y a pas de fonction Scilab équivalente à la fonction Matlab isa
mais quand la "classe" d'objet recherchée existe dans Scilab, des expressions équivalentes existent.
La fonction mtlb_isa(OBJ,class)
est utilisée par
mfile2sci
pour remplacer isa(OBJ,class)
quand il n'était pas
possible de savoir ce qu'étaient les paramètres d'entrée 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_isa
:
Si class
est égal à "logical",
mtlb_isa(OBJ,class)
peut être remplacé par type(OBJ)==4
Si class
est égal à "char",
mtlb_isa(OBJ,class)
peut être remplacé par type(OBJ)==10
Si class
est égal à "numeric",
mtlb_isa(OBJ,class)
peut être remplacé par or(type(OBJ)==[1,5,8])
Si class
est égal à "intX" (X valant 8, 16 ou 32),
mtlb_isa(OBJ,class)
peut être remplacé par typeof(OBJ)=="intX"
Si class
est égal à "uintX" (X valant 8, 16 ou 32),
mtlb_isa(OBJ,class)
peut être remplacé par typeof(OBJ)=="uintX"
Si class
est égal à "single",
mtlb_isa(OBJ,class)
peut être remplacé par type(OBJ)==1
Si class
est égal à "double",
mtlb_isa(OBJ,class)
peut être remplacé par type(OBJ)==1
Si class
est égal à "cell",
mtlb_isa(OBJ,class)
peut être remplacé par typeof(OBJ)=="ce"
Si class
est égal à "struct",
mtlb_isa(OBJ,class)
peut être remplacé par typeof(OBJ)=="st"
Si class
est égal à "function_handle",
mtlb_isa(OBJ,class)
peut être remplacé par type(OBJ)==13
Si class
est égal à "sparse",
mtlb_isa(OBJ,class)
peut être remplacé par type(OBJ)==5
Si class
est égal à "lti",
mtlb_isa(OBJ,class)
peut être remplacé par typeof(OBJ)=="state-space"
Attention : mtlb_isa
ne doit pas être utilisée pour une programmation manuelle.