Delen via


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

Zie ook

gegevenstypen (DirectX HLSL)