# mtlb_max

Fonction d'émulation de la fonction Matlab max

## Description

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.

## Voir aussi

- firstnonsingleton