Show
Ignore:
Timestamp:
11/17/09 00:54:28 (15 years ago)
Author:
smidl
Message:

logger now has ability to store settings - used in estimator. New mexfunction epdf_mean

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/mex/config2mxstruct.h

    r706 r728  
    3131        mxArray* array2mxvector ( const Setting &setting )  { 
    3232                if ( !setting.isArray() ) mexErrMsgTxt ( "Given setting is not an array" ); 
    33                 double *elements = new double[setting.getLength() ]; 
     33                mxArray *result = mxCreateDoubleMatrix ( 1, setting.getLength(), mxREAL ); 
     34                double *elements = mxGetPr(result); 
    3435                for ( int i = 0; i < setting.getLength(); i++ ) { 
    3536                        if ( setting.getType() == Setting::TypeInt ) { //TODO: tady je chyba -- zaporna cisla nejsou TypeInt 
    36                                 elements[i] = setting[i]; 
     37                                elements[i] = (int) setting[i]; 
    3738                        } else { 
    38                                 elements[i] = ( int ) setting[i]; 
     39                                elements[i] = setting[i]; 
    3940                        } 
    4041                } 
    41                 vec &v = * ( new vec ( elements, setting.getLength() ) ); 
    42                 mxArray *result = mxCreateDoubleMatrix ( 1, setting.getLength(), mxREAL ); 
    43                 vec2mxArray ( v, result ); 
    44                 delete &v; 
    45                 delete [] elements; 
    4642                return result; 
    4743        } 
     
    4945        //! Convert libconfig's array to Matlab matrix 
    5046        mxArray* list2mxmatrix ( const Setting &setting )  { 
    51                 if ( !setting.isList() || ( "matrix" != setting[0] ) ) 
     47                if ( !setting.isList() || ( strcmp("matrix", setting[0])!=0 ) ) 
    5248                        mexErrMsgTxt ( "Given setting is not a matrix" ); 
    5349                int rows = setting[1]; 
     
    118114                        return result; 
    119115                } 
    120                 if ( ( setting[0].getType() == Setting::TypeString ) && ( "matrix" == setting[0] ) ) { 
    121                         return list2mxmatrix ( setting ); 
     116                 
     117                if ( ( setting[0].getType() == Setting::TypeString )){ 
     118                        string s=(setting[0]); 
     119                        if (s=="matrix") { 
     120                                return list2mxmatrix ( setting ); 
     121                        } 
    122122                } 
    123123                mxArray *result = mxCreateCellMatrix ( 1, setting.getLength() );