mtlb_i — Fonction d'émulation de l'insertion de Matlab
Dans plusieurs cas particuliers, l'insertion se comporte différemment dans Matlab et dans Scilab :
En insérant une matrice dans une variable : Matlab ajuste automatiquement la taille de la variable de retour pour qu'elle corresponde avec la matrice à insérer mais pas Scilab. Par exemple, avec A=1, A([1,2,3,4])=[1,2;3,4]) retourne un message d'erreur dans Scilab alors que dans Matlab on obtient A=[1,2,3,4]. Si des valeurs manquent par rapport aux indices donnés pour insérer, Matlab remplit la valeur de retour avec des zéros.
Lors de l'insertion de données d'une matrice d'une chaîne de caractères : étant donné que
les matrices de chaînes de caractères peuvent être adressées comme tout autre type de
matrice dans Matlab (chaque caractère peut être adressé),
l'insertion à partir dans une telle matrice ne change pas des autres types. Mais dans Scilab
ceci ne peut être fait de la même manière... mtlb_is
est une alternative.
La fonction A=mtlb_i(A,k,B)
est utilisée par
mfile2sci
pour remplacer A(k)=B
quand il n'était pas
possible de savoir ce qu'étaient les opérandes 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_i
:
Si A
n'est pas un vecteur
A=mtlb_i(A,k,B)
peut être remplacé par A(k)=B
Si A
et B
sont des vecteurs lignes ou colonnes
A=mtlb_i(A,k,B)
peut être remplacé par A(k)=B
Attention : mtlb_i
ne doit pas être utilisée pour une programmation manuelle.