2.2.3.9.23 matrixbase::FloorFloor
 
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
 
             |