annotate toolboxes/FullBNT-1.0.7/KPMtools/mexutil.c @ 0:cc4b1211e677 tip

initial commit to HG from Changeset: 646 (e263d8a21543) added further path and more save "camirversion.m"
author Daniel Wolff
date Fri, 19 Aug 2016 13:07:06 +0200
parents
children
rev   line source
Daniel@0 1 #include "mexutil.h"
Daniel@0 2
Daniel@0 3 /* Functions to create uninitialized arrays. */
Daniel@0 4
Daniel@0 5 mxArray *mxCreateNumericArrayE(int ndim, const int *dims,
Daniel@0 6 mxClassID class, mxComplexity ComplexFlag)
Daniel@0 7 {
Daniel@0 8 mxArray *a;
Daniel@0 9 int i, *dims1 = mxMalloc(ndim*sizeof(int));
Daniel@0 10 size_t sz = 1;
Daniel@0 11 for(i=0;i<ndim;i++) {
Daniel@0 12 sz *= dims[i];
Daniel@0 13 dims1[i] = 1;
Daniel@0 14 }
Daniel@0 15 a = mxCreateNumericArray(ndim,dims1,class,ComplexFlag);
Daniel@0 16 sz *= mxGetElementSize(a);
Daniel@0 17 mxSetDimensions(a, dims, ndim);
Daniel@0 18 mxFree(dims1);
Daniel@0 19 mxSetData(a, mxRealloc(mxGetData(a), sz));
Daniel@0 20 if(ComplexFlag == mxCOMPLEX) {
Daniel@0 21 mxSetPi(a, mxRealloc(mxGetPi(a),sz));
Daniel@0 22 }
Daniel@0 23 return a;
Daniel@0 24 }
Daniel@0 25 mxArray *mxCreateNumericMatrixE(int m, int n, mxClassID class,
Daniel@0 26 mxComplexity ComplexFlag)
Daniel@0 27 {
Daniel@0 28 size_t sz = m*n*sizeof(double);
Daniel@0 29 mxArray *a = mxCreateNumericMatrix(1, 1, class, ComplexFlag);
Daniel@0 30 mxSetM(a,m);
Daniel@0 31 mxSetN(a,n);
Daniel@0 32 mxSetPr(a, mxRealloc(mxGetPr(a),sz));
Daniel@0 33 if(ComplexFlag == mxCOMPLEX) {
Daniel@0 34 mxSetPi(a, mxRealloc(mxGetPi(a),sz));
Daniel@0 35 }
Daniel@0 36 return a;
Daniel@0 37 }
Daniel@0 38 mxArray *mxCreateDoubleMatrixE(int m, int n,
Daniel@0 39 mxComplexity ComplexFlag)
Daniel@0 40 {
Daniel@0 41 return mxCreateNumericMatrixE(m,n,mxDOUBLE_CLASS,ComplexFlag);
Daniel@0 42 }
Daniel@0 43