读书人

VS2010与MATLAB集成(二)-使用DLL方式

发布时间: 2012-09-07 10:38:15 作者: rapoo

VS2010与MATLAB集成(2)-使用DLL方式
一、环境准备

安装VS2010和MATLAB2012a。

二、编写MATLAB函数

在MATLAB中新建一个函数

int test_matlab_norminv(){norminvInitialize();static double P = 0.9;mxArray * mxa_P = mxCreateDoubleMatrix(1, 1, mxREAL);memcpy (mxGetPr(mxa_P), &P, sizeof(double));static double mu = 0;mxArray * mxa_mu = mxCreateDoubleMatrix(1, 1, mxREAL);memcpy (mxGetPr(mxa_mu), &mu, sizeof(double));static double sigma = 1.0;mxArray * mxa_sigma = mxCreateDoubleMatrix(1, 1, mxREAL);memcpy (mxGetPr(mxa_sigma), &sigma, sizeof(double));mxArray * mxa_pcov = mxCreateDoubleMatrix(1, 1, mxREAL);memcpy (mxGetPr(mxa_pcov), &sigma, sizeof(double));mxArray * mxa_alpha = mxCreateDoubleMatrix(1, 1, mxREAL);memcpy (mxGetPr(mxa_alpha), &sigma, sizeof(double));mxArray * mxa_X = mxCreateDoubleMatrix(1, 1, mxREAL);/*mxArray * mxa_XLO = mxCreateDoubleMatrix(1, 1, mxREAL);mxArray * mxa_XUP = mxCreateDoubleMatrix(1, 1, mxREAL);*///bool bRes = mlfNorminv (1, &mxa_X, &mxa_XLO, &mxa_XUP, mxa_P, mxa_mu, mxa_sigma, mxa_sigma, mxa_sigma);bool bRes = mlfNorminv (1, &mxa_X, NULL, NULL, mxa_P, mxa_mu, mxa_sigma, mxa_sigma, mxa_sigma);double res;memcpy (&res, mxGetPr(mxa_X), sizeof(double));mxDestroyArray(mxa_P);mxDestroyArray(mxa_mu);mxDestroyArray(mxa_sigma);norminvTerminate();return 0;}



 

读书人网 >VSTS

热点推荐