Matrixtype
Een matrix is een gegevenstype dat tussen één en zestien scalaire onderdelen in een tweedimensionaal raster bevat. Elk onderdeel van een matrix moet van hetzelfde type zijn.
Typedeclaratie
U kunt matrixvariabelen declareren met behulp van het scalaire type naam van de inhoud van de matrix met het aantal rijen en kolommen dat deze bevat:
TypeRowsCols Name
Wanneer Type
het scalaire type van elk van de onderdelen is, is Rows
een constante gehele getalexpressie tussen 1 en 4 die het aantal rijen aangeeft, Cols
een constante geheel getalexpressie is tussen 1 en 4 die het aantal kolommen aangeeft en Name
een ASCII-tekenreeks is die de naam van de variabele uniek identificeert.
Voorbeelden:
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
};
Declaratie in sjabloonstijl
Een alternatieve syntaxis voor declaratie maakt gebruik van de matrix
trefwoord- en sjabloonargumenten om het scalaire type, het aantal rijen en het aantal kolommen aan te geven:
matrix <Type=float, Rows=4, Cols=4> Name
Wanneer Type
het scalaire type van elk van de onderdelen is, is Rows
een geheel getal tussen 1 en 4 dat het aantal rijen aangeeft, Cols
een geheel getal is tussen 1 en 4 dat het aantal kolommen aangeeft, maar ze worden opgegeven binnen vierkante haakjes met een sjabloonstijl.
Name
is een ASCII-tekenreeks die de naam van de variabele uniek identificeert.
Houd er rekening mee dat de standaardinstellingen voor de sjabloonparameter het opgeven van vier kolommen van een bepaald type en het aantal rijen toestaan door de laatste parameter weg te laten, een 4x4-matrix van een bepaald type door de laatste twee sjabloonparameters of 4x4 float matrices weg te laten door alle drie de drie af te sluiten.
Voorbeelden:
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 };