2.1.18.20 ocmath_xyz_examine_data
Description
This function check the xyz scatters and return the proposed method for converting the XYZ to matrix.
Syntax
int ocmath_xyz_examine_data( UINT nSize, double * x, double * y, double * z, double dXPrecision = 1.0e-8, double dYPrecision = 1.0e-8, UINT * pVar = NULL, double * pXmin = NULL, double * pXStep = NULL, double * pXmax = NULL, double * pYmin = NULL, double * pYStep = NULL, double * pYmax = NULL, bool bRemoveDuplicate = false, int nMethod = Remove_With_Mean )
Parameters
- nSize
- [input] the number of scatters.
- x
- [modify] the x-coordinates of the scatters.
- y
- [modify] the y-coordinates of the scatters.
- z
- [modify] the z-coordinates of the scatters.
- dXPrecision
- [input] the precision to determine whether two points are duplicated in X dimension.
- dYPrecision
- [input] the precision to determine whether two points are duplicated in Y dimension.
- pVar
- [output] the number of points after removing the duplicates.
- pXmin
- [output] the minimum in x-coordinates when scatters are not randomly distributed.
- pXStep
- [output] the interval in x-coordinates when scatters are not randomly distributed.
- pXmax
- [output] the maximum in x-coordinates when scatters are not randomly distributed.
- pYmin
- [output] the minimum in y-coordinates when scatters are not randomly distributed.
- pYStep
- [output] the interval in y-coordinates when scatters are not randomly distributed.
- pYmax
- [output] the maximum in y-coordinates when scatters are not randomly distributed.
- bRemoveDuplicate
- [input] if true, the function will remove the duplicates, or else the array x, y, z will not change.
- nMethod
- [input] the method used in removing the duplicates.
Return
Return the proposed method for converting the XYZ to matrix
0: Regular conversion
1: Sparse conversion
2: Random conversion
or other values for ERROR
Examples
EX1
#include <wks2mat.h>
void ocmath_xyz_examine_data_ex1()
{
int n = 10;
double a[]={1,1,1,2,2,2,3,3,3,2};
double b[]={1,2,3,1,2,3,1,2,3,2};
double c[]={5,3,7,3,6,5,0,4,3,7};
int nRet = ocmath_xyz_examine_data(n, a, b, c, 1.0e-4, 1.0e-4);
printf("%d\n", nRet);
}
EX2
#include <wks2mat.h>
// Loaded XYZ data from the active Workshheet, and determine how to convert it to a matrix.
void ocmath_xyz_examine_data_ex2(double dPrecision = 1.0e-8)
{
// The active Worksheet.
Worksheet wks = Project.ActiveLayer();
wks.SetSize(-1, 3); // To contain the results
Dataset dsX(wks, 0), dsY(wks, 1), dsZ(wks, 2);
vector vX(dsX), vY(dsY), vZ(dsZ);
int nSize = vX.GetSize();
UINT nVar;
double dXmin,dXStep,dXmax,dYmin,dYStep,dYmax;
bool bRemoveDuplicate = false;
int iRet = ocmath_xyz_examine_data(nSize, vX, vY, vZ, dPrecision, dPrecision, &nVar,&dXmin,&dXStep,&dXmax,&dYmin,&dYStep,&dYmax,bRemoveDuplicate);
switch(iRet)
{
case 0: // Regular.
printf("--- %d: regular conversion ---\n", iRet);
break;
case 1: // Sparse.
printf("--- %d: sparse conversion ---\n", iRet);
break;
case 2: // Random.
printf("--- %d: random conversion ---\n", iRet);
break;
default: // Error.
printf("--- Error: %d returned ---\n", iRet);
}
// Output results.
printf("nVar = %d\n", nVar );
printf("dXmin = %f\n", dXmin );
printf("dXstep = %f\n", dXStep);
printf("dXmax = %f\n", dXmax );
printf("dYmin = %f\n", dYmin );
printf("dYstep = %f\n", dYStep);
printf("dYmax = %f\n", dYmax );
}
Remark
Should remove duplicated points before using this function
See Also
ocmath_convert_regular_xyz_to_matrix, ocmath_convert_sparse_xyz_to_matrix
Header to Include
wks2mat.h
Reference
|