matrixbase::Floor
Floor
Description
Round each cell of this matrix to the nearest integer less than the current cell value (toward minus infinity).
Syntax
int Floor( matrixbase & mbFloor )
Parameters
- mbFloor
- [output] matrix containing the results
Return
Returns 0 on success and a non-zero error code on failure.
Note that the missing value(NANUM) won't be changed by this function.
Examples
EX1
void matrixbase_Floor_ex1()
{
int rc;
matrix<double> mat1 = {
{ 0.0, 0.1, 1.0, 1.1, 1.5, 1.9},
{ 999, -0.1, -1.0, -1.1, -1.5, -1.9}
};
mat1[1][0]=NANUM; // set row=2,col=1 to NANUM
rc=mat1.Floor(mat1);
if(rc!=0) printf("Error: Floor failed. Error Code=%d\n",rc);
else{
printf("The matrix is:\n");
for(int ii=0; ii< mat1.GetNumRows(); ii++){
for(int jj=0; jj< mat1.GetNumCols(); jj++)
printf("%g ", mat1[ii][jj]);
printf("\r\n");
}
}
}
EX2
#define MAKEMAT(X) MatrixLayer MatLy##X;MatLy##X.Create();Matrix Mat##X(MatLy##X)
// Apply various integer-making functions to a matrix
void matrixbase_Floor_ex2()
{
int rc;
matrix<double> mat1 = {
{ 0.0, 0.1, 1.0, 1.1, 1.5, 1.9},
{ 999, -0.1, -1.0, -1.1, -1.5, -1.9}
};
mat1[1][0]=NANUM; // set row=2,col=1 to NANUM
PageBase pgbase;
MAKEMAT(1);
pgbase = Project.Pages(); // Get the active page
pgbase.Rename("Original");
Mat1 = mat1;
// Change cells to floor values
MAKEMAT(2);
pgbase = Project.Pages();
pgbase.Rename("Floor");
rc=Mat1.Floor(Mat2);
if(rc!=0) printf("Error: Floor failed. Error Code=%d\n",rc);
else printf("%s matrix is created.\n",Mat2.GetName());
// Change cells to fix values
MAKEMAT(3);
pgbase = Project.Pages();
pgbase.Rename("Fix");
rc=Mat1.Fix(Mat3);
if(rc!=0) printf("Error: Fix failed. Error Code=%d\n",rc);
else printf("%s matrix is created.\n",Mat3.GetName());
// Change cells to round values
MAKEMAT(4);
pgbase = Project.Pages();
pgbase.Rename("Round");
rc=Mat1.Round(Mat4);
if(rc!=0) printf("Error: Round failed. Error Code=%d\n",rc);
else printf("%s matrix is created.\n",Mat4.GetName());
// Change cells to ceil values
MAKEMAT(5);
pgbase = Project.Pages();
pgbase.Rename("Ceil");
rc=Mat1.Ceil(Mat5);
if(rc!=0) printf("Error: Ceil failed. Error Code=%d\n",rc);
else printf("%s matrix is created.\n",Mat5.GetName());
}
Remark
Round each cell of this matrix to the nearest integer less than the current cell value (toward minus infinity). Notice the differences of Round, Fix, Floor and Ceil.
See Also
matrixbase::Fix, matrixbase::Round, matrixbase::Ceil
header to Include
origin.h
|