MATMUL
Multiplication de matrice
Aperçu
Contenu
Description
Le bloc MATMUL calcule le produt d'une matrice d'entrée par une matrice ou un scalaire.
Quand le paramètre Multiplication rule est initialisé à :
1, (produit matriciel) le nombre de lignes de la première matrice doit être égal au nombre de colonnes de la seconde matrice. La sortie est une matrice dont le nombre de lignes est égal à celui de la première matrice et le nombre de colonnes égal à celui de la deuxième matrice.
2, (produit élément par élément) les matrices doivent être de mêmes dimensions. La sortie est une matrice de mêmes dimensions que les matrices d'entrée.
3, (produit par un scalaire) la sortie est une matrice de mêmes dimensions que la matrice d'entrée.
Pour des entrées entières lors d'un dépassement de capacité, le bloc donne trois formes de résultats :
1- Un résultat normal non saturé. Par exemple, si le type est int8 et le résultat 128, la valeur de sortie du bloc sera -128.
2- Un résultat saturé. Pour l'exemple précédent la valeur de sortie du bloc sera 127
3- Un message d'erreur prévenant l'utilisateur du dépassement de capacité.
L'utilisateur peut sélectionner l'une de ces trois formes en mettant le champ Do on Overflow à 0,1 ou 2.
Paramètres
Datatype(1=real double 2=Complex)
Il indique le type de la sortie. Il supporte seulement les types double (1) et complexe (2). Si on entre une autre valeur dans ce paramètre, Xcos affiche le message "Datatype is not supported".
Propriétés : Type 'vec' de taille 1.
Multiplication rule (1= * 2= .* )
Sélectionne la régle de mutiplication. Voir la description pour plus d'informations
Propriétés : Type 'vec' de taille 1.
Do on Overflow(0=Nothing 1=Saturate 2=Error)
Quand ce paramètre est mis à zéro le résultat est similaire à la multiplication normale de deux matrices entières. Quand il est à 1, lors d'un dépassement de capacité le bloc sature le résultat. Quand il est à 2, lors d'un dépassement de capacité un dialogue de message d'erreur est affiché.
Pour des entrées de type double ou complexe ce paramètre est ignoré.
Propriétés : Type 'vec' de taille 1.
Exemple
A=[1 2 3;4 5 6] B=[9 8 7 6;5 4 3 2;9 7 5 3] y=[46 37 28 19;115 94 73 52]
Propriétés par défaut
always active: non
direct-feedthrough: oui
zero-crossing: non
mode: non
regular inputs:
- port 1 : size [-1,-2] / type 1
- port 2 : size [-2,-3] / type 1
regular outputs:
- port 1 : size [-1,-3] / type 1
number/sizes of activation inputs: 0
number/sizes of activation outputs: 0
continuous-time state: non
discrete-time state: non
object discrete-time state: non
name of computational function: matmul_m
Fonction d'interfaçage
SCI/modules/scicos_blocks/macros/MatrixOp/MATMUL.sci
Fonctions de calcul
- SCI/modules/scicos_blocks/src/c/matmul_m.c
- SCI/modules/scicos_blocks/src/c/matzmul_m.c
- SCI/modules/scicos_blocks/src/c/matmul2_m.c
- SCI/modules/scicos_blocks/src/c/matzmul2_m.c
Voir aussi
Report an issue | ||
<< MATLU | Palette Opérations matricielles | MATPINV >> |