c µ÷Óà matlab engine ×Ô¶¨Ò庯Êý
ÉèÖãº
1. Tools/Projects and Solutions/VC ++ Directories
Inlcude files: C:\Program Files\MATLAB\R2009a\extern\include
Library files: C:\Program Files\MATLAB\R2009a\extern\lib
2. Property
Configuration Properties/Linker
General: Additional Library Directories: "C:\Program Files\MATLAB\R2009a\extern\lib\win32\microsoft"
Input: Additional Dependencies: libmx.lib libmat.lib libeng.lib
#include
"stdafx.h"
#include
#include
#include
#include
fun_XY.m file
function Z = fun_XY(X,Y)
Z = X*Y;
<stdio.h><stdlib.h><conio.h>"engine.h"
int
main(int argc, char
**argv)
{
double
X[3][2] = {{1,4},{2,5},{3,6}};
double
Y[2][2] = {{1,2},{3,4}};
int
succeedNotFlag = 1;
Engine *ep;
if
(!(ep = engOpen(NULL)))
{
exit(1);
}
engSetVisible(ep,1);
mxArray *xx = mxCreateDoubleMatrix(3,2,mxREAL);
mxArray *yy = mxCreateDoubleMatrix(2,2,mxREAL);
memcpy(mxGetPr(xx),X,6*
sizeof(double
));
memcpy(mxGetPr(yy),Y,4*
sizeof(double
));
engPutVariable(ep,
"X"
,xx);
engPutVariable(ep,
"Y"
,yy);
int
rows = mxGetM(xx);
int
cols = mxGetN(xx);
////succeedNotFlag = engEvalString(ep,"cd D:\\progX\\CM\\mt");
//succeedNotFlag = engEvalString(ep,"path(path,'D:\progX\CM\mt')"); //will not go to the right routine.
succeedNotFlag = engEvalString(ep,
"path(path,'D:\\progX\\CM\\mt')");
////will go to the right routine.
succeedNotFlag = engEvalString(ep,
"Z = fun_XY_lan(X,Y);"
);
mxArray *z_ptr = NULL;
z_ptr = engGetVariable(ep,
"Z"
);
double *z_c = new double
[6];
z_c = (
double
*) mxGetData(z_ptr);
mxDestroyArray(xx);
mxDestroyArray(yy);
delete
[]z_c;
engClose(ep);
return
0;
Ïà¹ØÎĵµ£º
¾¡¹Ü Lua µÄ¹Ø¼ü´ÊµÄÉè¼Æ£¬ÔËÐзûµÄÉè¼Æ£¬Óï·¨µÄÉè¼ÆµÈ·½ÃæÓë C ºÜÏàËÆ£¬µ«ÎÒÃÇ»¹Òª×¢ÒâÆäÃ÷ÏÔ²»Í¬µÄµØ·½¡£
Ìõ¼þÅжÏʱµÄÕæ¼ÙÌõ¼þ
Lua ÖÐËùÓеÄÖµ¶¼¿ÉÒÔ×÷ΪÌõ¼þ¡£ÔÚ¿ØÖƽṹµÄÌõ¼þÖгýÁË false ºÍ nil Ϊ¼Ù£¬ÆäËûÖµ¶¼ÎªÕæ¡£ËùÒÔ Lua ÈÏΪ 0 ºÍ ¿Õ´® ¶¼ÊÇÕæ¡£
¶ø C ÖУ¬ÈÏΪֻҪÊÇÔÚÄÚ´æÖбíÏÖΪ 0 ÖµµÄ·ûºÅ¶¼Îª¼Ù¡£
×Ö ......
¼ÙÉèÓÐchar a[2];
ÈçÒª°Ñaת»»ÎªintÖµ¡£Ó¦ÊÇÈçÏÂд·¨int b=*(int *)a;
¼´£¬ÏȰÑÖ¸Õëa ת»»ÎªÒ»¸öintÖ¸Õ룬ȻºóÔÙ´Ë»ù´¡ÉÏȡֵ¡£
µ«ÊÇÁíÒ»ÖÖд·¨ int b=(int)(*a);ÊDz»¶ÔµÄ£¬*a È¡aµÄÄÚ´æµ¥ÔªÄÚÈÝ£¬ÒòΪÏÖÔÚaÊÇcharÖ¸Õ룬ËùÒÔÖ»»áÈ¡a[1]ÖÐÄÚÈÝ£¬×î´óΪ255. ÕâÀïҪ˵Ã÷µÄÊÇ£¬ÔÚ°Ñchar»òbyteÊý×éת»»ÎªÆäËûÀàÐ͵Äֵʱ£¬ÒªÏÈ ......
1. ½çÃæ¹æ·¶
1.1. ×ÜÌåÔÔò
l ÒÔÓû§ÎªÖÐÐÄ¡£Éè¼ÆÓÉÓû§¿ØÖƵĽçÃæ£¬¶ø²»ÊǽçÃæ¿ØÖÆÓû§¡£
l Çå³þÒ»ÖµÄÉè¼Æ¡£ËùÓнçÃæµÄ·ç¸ñ±£³ÖÒ»Ö£¬ËùÓоßÓÐÏàͬº¬ÒåµÄÊõÓï±£³ÖÒ»Ö£¬ÇÒÒ×ÓÚÀí½â
l ÓµÓÐÁ¼ºÃµÄÖ±¾õÌØÕ÷¡£ÒÔÓû§ËùÊìϤµÄÏÖʵÊÀ½çÊÂÎñµÄ³éÏóÀ´¸øÓû§°µÊ¾ºÍÒþÓ÷£¬À´°ïÖúÓû§ÄÜѸËÙѧ»áÈí¼þµÄʹÓá£
l ½Ï¿ìµÄÏìÓ¦Ë ......
ÉÏһƪÖÐÎÒÃÇÒѾÁ˽âÈçºÎÔÚPython³ÌÐòºÍCÄ£¿éÖ®¼ä½øÐÐÖµµÄÏ໥´«µÝ£¬ÏÖÔÚÎÒÃÇÀ´½øÈëʵ×÷½×¶Î£¬¿´¿´ÈçºÎ½«Ò»¸öCÓïÑÔ¿ª·¢µÄ¿ªÔ´mp3±à½âÂë¿âLAME°üװΪһ¸öPythonÏ¿ÉÒÔʹÓõÄÀ©Õ¹Ä£¿é¡£Ê×ÏÈÈ¥http://lame.sourceforge.net/download.phpÏÂÔØLAMEµÄÔ´´úÂ룬ȻºóÇл»µ½rootÓû§±àÒëÔ´´úÂ룬./configure
make
make instal ......