Data Access from Matrix

 

 

Version Info

Minimum Origin Version Required: Origin8 SR0

Remark

This section introduced access data from Origin matrix window.

More related details please reference to the following Origin C Reference sections:

MatrixPage class

MatrixLayer class

MatrixObject class

matrixbase class

matrix class

Matrix class

Numeric

double

void AccessMatrixDoubleType()
{
        MatrixPage matPage;
        matPage.Create("Origin"); 
        MatrixLayer ml = matPage.Layers(0); // get the first matrix sheet        
        
        int nObjectIndex = 0;
        MatrixObject mo = ml.MatrixObjects(nObjectIndex); // get the first matrix object
        
        mo.SetSize(5, 5); // set size to 5 rows with 5 columns   
        double xmin = 1, xmax = 10, ymin = 1, ymax = 10;   
        mo.SetXY(xmin, xmax, ymin, ymax); // set x/y from and to
        
        // set z values
        Matrix mat(ml, nObjectIndex);
        for(int ii=0; ii<mat.GetNumRows(); ii++)
                for(int jj=0; jj<mat.GetNumCols(); jj++)
                {
                        mat[ii][jj] = ii + jj;
                }
}

complex

void AccessMatrixComplexType()
{
        MatrixPage matPage;
        matPage.Create("Origin"); 
        MatrixLayer ml = matPage.Layers(0); // get the first matrix sheet
        
        int nObjectIndex = 0;
        MatrixObject mo = ml.MatrixObjects(nObjectIndex); // get the first matrix object
        
        mo.SetSize(5, 5); // set size to 5 rows with 5 columns   
        mo.SetInternalData(FSI_COMPLEX); // set internal data type to complex, default is double
        
        // set z values
        Matrix<complex> mat(ml, nObjectIndex);
        for(int ii=0; ii<mat.GetNumRows(); ii++)
                for(int jj=0; jj<mat.GetNumCols(); jj++)
                {
                        complex cc(ii, jj); // construct a complex data with ii as real and jj as imaginary
                        mat[ii][jj] = cc;
                }     
}