Changeset 728 for library/bdm/mex/config2mxstruct.h
- Timestamp:
- 11/17/09 00:54:28 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/mex/config2mxstruct.h
r706 r728 31 31 mxArray* array2mxvector ( const Setting &setting ) { 32 32 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); 34 35 for ( int i = 0; i < setting.getLength(); i++ ) { 35 36 if ( setting.getType() == Setting::TypeInt ) { //TODO: tady je chyba -- zaporna cisla nejsou TypeInt 36 elements[i] = setting[i];37 elements[i] = (int) setting[i]; 37 38 } else { 38 elements[i] = ( int )setting[i];39 elements[i] = setting[i]; 39 40 } 40 41 } 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;46 42 return result; 47 43 } … … 49 45 //! Convert libconfig's array to Matlab matrix 50 46 mxArray* list2mxmatrix ( const Setting &setting ) { 51 if ( !setting.isList() || ( "matrix" != setting[0]) )47 if ( !setting.isList() || ( strcmp("matrix", setting[0])!=0 ) ) 52 48 mexErrMsgTxt ( "Given setting is not a matrix" ); 53 49 int rows = setting[1]; … … 118 114 return result; 119 115 } 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 } 122 122 } 123 123 mxArray *result = mxCreateCellMatrix ( 1, setting.getLength() );