Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2025.0.0 - Français


MATMUL

Multiplication de matrice

Aperçu

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

  • INTMUL — Multiplication de matrices entières
  • MATDIV — Division matricielle
  • MATBKSL — Division à gauche de matrice
  • MATEXPM — Exponentielle matricielle
  • SUMMATION — Addition/Soustraction de matrices
Report an issue
<< MATLU Palette Opérations matricielles MATPINV >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Oct 24 11:16:03 CEST 2024