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 };