123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #include "ConverterNICEToMatlab.h"
- using namespace NICE;
- ConverterNICEToMatlab::ConverterNICEToMatlab()
- {
- }
- ConverterNICEToMatlab::~ConverterNICEToMatlab()
- {
- }
- mxArray* ConverterNICEToMatlab::convertSparseVectorFromNice( const NICE::SparseVector & niceSvec, const bool & b_adaptIndexCtoM ) const
- {
- mxArray * matlabSparseVec = mxCreateSparse( niceSvec.getDim() , 1, niceSvec.size(), mxREAL);
-
-
-
-
-
-
-
-
-
- double* prPtr = mxGetPr(matlabSparseVec);
- mwIndex * ir = mxGetIr( matlabSparseVec );
-
- mwIndex * jc = mxGetJc( matlabSparseVec );
- jc[1] = niceSvec.size(); jc[0] = 0;
-
-
- mwSize cnt = 0;
-
- for ( NICE::SparseVector::const_iterator myIt = niceSvec.begin(); myIt != niceSvec.end(); myIt++, cnt++ )
- {
-
- if ( b_adaptIndexCtoM )
- ir[cnt] = myIt->first-1;
- else
- ir[cnt] = myIt->first;
-
-
- prPtr[cnt] = myIt->second;
- }
-
- return matlabSparseVec;
- }
- mxArray* ConverterNICEToMatlab::convertMatrixFromNice( const NICE::Matrix & niceMatrix ) const
- {
- mxArray *matlabMatrix = mxCreateDoubleMatrix( niceMatrix.rows(), niceMatrix.cols(), mxREAL );
- double* matlabMatrixPtr = mxGetPr( matlabMatrix );
- for( int i = 0; i < niceMatrix.rows(); i++ )
- {
- for( int j = 0; j < niceMatrix.cols(); j++ )
- {
- matlabMatrixPtr[i + j*niceMatrix.rows()] = niceMatrix(i,j);
- }
- }
-
- return matlabMatrix;
- }
- mxArray* ConverterNICEToMatlab::convertVectorFromNice( const NICE::Vector & niceVector ) const
- {
- mxArray *matlabVector = mxCreateDoubleMatrix( niceVector.size(), 1, mxREAL );
- double* matlabVectorPtr = mxGetPr( matlabVector );
- for( int i = 0; i < niceVector.size(); i++ )
- {
- matlabVectorPtr[i] = niceVector[i];
- }
- return matlabVector;
- }
|