# mtlb_size

Fonction d'émulation de la fonction Matlab size

## Description

Dans plusieurs cas particuliers, la fonction `size` se comporte différemment dans Matlab et dans Scilab :

- Avec deux paramètres d'entrée : La fonction Matlab `size` peut être utilisée avec le second paramètre donnant donnant une dimension du premier paramètre qui n'existe pas (retourne 1 dans ce cas) mais pas la fonction Scilab.

- Avec plus d'une paramètre de sortie : si le nombre de paramètres de sortie est plus petit que le nombre de dimension, la dernière sortie est égale au produit de toutes les dimensions restantes dans Matlab mais pas dans Scilab. Si le nombre de sorties est plus grand que le nombre de dimensions, toutes les sorties correspondant à une dimension qui n'existe pas sont égales à 1 en Matlab mais Scilab retourne une erreur dans ce cas.

La fonction `[d1,[d2,...]] = mtlb_size(X[,dim])` est utilisée par `mfile2sci` pour remplacer `[d1,[d2,...]] = mtlb_size(X[,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_size` :

- Avec deux paramètres d'entrée : si `dim` correspond à une dimension de `X` qui existe `mtlb_size(X,dim)` peut être remplacé par `size(X,dim)`

- Avec plus d'un paramètre de sortie : si le nombre des sorties est égal au nombre de dimensions de `X` `[d1,[d2,...]] = mtlb_size(X)` peut être remplacé par `[d1,[d2,...]] = size(X)`

Attention : `mtlb_size` ne doit pas être utilisée pour une programmation manuelle.