mtlb_sum — Fonction d'émulation de la fonction Matlab sum
Dans plusieurs cas particuliers, la fonction sum
se comporte différemment dans Matlab et dans Scilab :
En cas d'appel avec un paramètre d'entrée : La fonction Matlab sum
traite
les valeurs en suivant la première dimension qui n'est pas 1 alors que la fonction Scilab
sum
traite toutes les valeurs de l'entrée.
En cas d'appel avec deux paramètres d'entrée : La fonction Matlab sum
peut être
utilisée avec le second paramètre donnant une dimension du premier paramètre qui n'existe pas
alors que la fonction Scilab sum
retourne un message d'erreur.
La fonction mtlb_sum(A[,dim])
est utilisée par
mfile2sci
pour remplacer sum(A[,dim])
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_sum
:
En cas d'appel avec un paramètre d'entrée, si A
est une matrice vide, un scalaire ou un vecteur,
mtlb_sum(A)
peut être remplacé par sum(A)
En cas d'appel avec un paramètre d'entrée, si A
est une matrice non-vide,
mtlb_sum(A)
peut être remplacé par sum(A,1)
En cas d'appel avec un paramètre d'entrée, si A
est hypermatrice,
mtlb_sum(A)
peut être remplacé par sum(A,firstnonsingleton(A))
En cas d'appel avec deux paramètres d'entrée, si dim
est inférieure au nombre
de dimensions de A
mtlb_sum(A,dim)
peut être remplacé par sum(A,dim)
Attention : mtlb_sum
ne doit pas être utilisée pour une programmation manuelle.