12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #include "ConverterNICEToMatlab.h"
- using namespace NICE;
- using namespace NICE::MatlabConversion;
- mxArray* MatlabConversion::convertSparseVectorFromNice( const NICE::SparseVector & niceSvec, const bool & b_adaptIndexCtoM )
- {
- 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* MatlabConversion::convertMatrixFromNice( const NICE::Matrix & niceMatrix )
- {
- 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* MatlabConversion::convertVectorFromNice( const NICE::Vector & niceVector )
- {
- 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;
- }
|