mtlb_max — Fonction d'émulation de la fonction Matlab max
Dans plusieurs cas particuliers, la fonction max
se comporte différemment dans Matlab et dans Scilab :
Avec des valeurs complexes : La fonction Matlab max
peut être utilisée
avec des complexes mais pas la fonction Scilab.
En cas d'appel avec deux paramètres d'entrée : La fonction Matlab max
traite les valeurs
suivant la première dimension qui n'est pas 1 alors que Scilab traite l'ensemble des valeurs de l'entrée.
En cas d'appel avec deux paramètres d'entrée : si l'une d'elles est une matrice vide, Scilab retourne un message d'erreur alors que Matlab renvoie [].
En cas d'appel avec trois paramètres d'entrée : si le paramètre dim
est plus grand que
le nombre de dimensions de le première entrée, Scilab retourne un message d'erreur alors que Matlab
retourne le premier paramètre.
La fonction [r[,k]] = mtlb_max(A[,B[,dim]])
est utilisée par
mfile2sci
pour remplacer [r[,k]] = max(A[,B[,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_max
:
En cas d'appel avec un paramètre d'entrée, si A
est un scalaire ou un vecteur
[r[,k]] = mtlb_max(A)
peut être remplacé par max(A)
En cas d'appel avec un paramètre d'entrée, si A
est une matrice
[r[,k]] = mtlb_max(A)
peut être remplacé par max(A,"r")
En cas d'appel avec deux paramètres d'entrée, si A
et B
sont des matrices réelles et ne sont pas des matrices vides,
[r[,k]] = mtlb_max(A,B)
peut être remplacé par max(A,B)
En cas d'appel avec trois paramètres d'entrée, si dim
est inférieur
au nombre de dimensions de A
,
[r[,k]] = mtlb_max(A,[],dim)
peut être remplacé par max(A,dim)
Attention : mtlb_max
ne doit pas être utilisée pour une programmation manuelle.