Partager via


Type de matrice

Une matrice est un type de données qui contient entre un et seize composants scalaires dans une grille à deux dimensions. Chaque composant d’une matrice doit être du même type.

Déclaration de type

Vous pouvez déclarer des variables de matrice à l’aide du type scalaire nom du contenu de la matrice avec le nombre de lignes et de colonnes qu’elle contient :

TypeRowsCols Name

Lorsque Type est le type scalaire de chacun des composants, Rows est une expression entière constante comprise entre 1 et 4, indiquant le nombre de lignes, Cols est une expression entière constante comprise entre 1 et 4, indiquant le nombre de colonnes et Name est une chaîne ASCII qui identifie de manière unique le nom de la variable.

Exemples:

int1x1    iMatrix;   // integer matrix with 1 row,  1 column, 1 single component
int4x1    iMatrix;   // integer matrix with 4 rows, 1 column, 4 total components
int1x4    iMatrix;   // integer matrix with 1 row, 4 columns, 4 total components
double3x3 dMatrix;   // double matrix with 3 rows, 3 columns, 9 total components

float3x2 fMatrix = { 0.0f, 0.1f, // row 1
                     2.1f, 2.2f, // row 2
                     4.1f, 4.2f  // row 3
                   };   

Déclaration de style modèle

Une autre syntaxe de déclaration utilise les arguments de mot clé et de modèle matrix pour indiquer le type scalaire, le nombre de lignes et le nombre de colonnes :

matrix <Type=float, Rows=4, Cols=4> Name

Lorsque Type est le type scalaire de chacun des composants, Rows est un entier compris entre 1 et 4, indiquant le nombre de lignes, Cols est un entier compris entre 1 et 4 inclus indiquant le nombre de colonnes, mais ils sont spécifiés dans les crochets d’angle de style modèle. Name est une chaîne ASCII qui identifie de façon unique le nom de la variable.

Notez que les paramètres de modèle par défaut permettent de spécifier des matrtices de 4 colonnes d’un type donné et du nombre de lignes en laissant hors du dernier paramètre, une matrice 4x4 d’un type donné en laissant hors des deux derniers paramètres de modèle ou des matrices flottantes 4x4 en laissant les trois.

Exemples:

matrix <int, 1, 1>   iMatrix = { 1 }; 
matrix <float, 2, 3> fMatrix = { 0.0f, 0.1f, 0.2f, // row 1
                                 2.1f, 2.2f, 2.3f  // row 2
                               };
matrix<int16_t, 1>   sMatrix = { 1, 2, 3, 4 }; // Defaults to 1x4 int16 matrix
matrix<float16_t>    hMatrix = { 0.0f, 0.1f, 0.2f, 0.3f, // Defaults to 4x4 float16 matrix
                                 1.0f, 1.1f, 1.2f, 1.3f,
                                 2.0f, 2.1f, 2.2f, 2.3f,
                                 3.0f, 3.1f, 3.2f, 3.3f }; 
matrix               fMatrix = { 0.0f, 0.1f, 0.2f, 0.3f, // Defaults to 4x4 float matrix
                                 1.0f, 1.1f, 1.2f, 1.3f,
                                 2.0f, 2.1f, 2.2f, 2.3f,
                                 3.0f, 3.1f, 3.2f, 3.3f }; 

Voir aussi

types de données (DirectX HLSL)