作者shiared (洨红)
看板MATLAB
标题[问题]关於matlab 呼叫c function
时间Mon Mar 31 22:03:09 2014
各位高手好
我想要利用Mex来加速matlab
目前遇到的问题是,我在做测试的时候,在进入c code前 disp('123')
然後在c code的第一行 mexPrintf("123"),不知道为什麽第一个123印完之後不会马上
印出456
大概matlab.m code如下
...
...
disp('456');
QQ=c_code(A,B,C);
...
...
------------------------
c_code.cpp:
void callfun(........){
....
....
....
....
}
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray
*prhs[]){
mexPrintf("456\n");
fflush(stdout);
callfun(plhs,prhs,nlhs,nrhs);
return;
}
A的dimension是128*300000
B是128*1000
C是1000*300000
可以请问一下为甚麽在进入c code的时候会停顿非常长的一段时间(我是用123的出现时间
~456的出现时间判断的),还是只是单纯io不会马上output到银幕上呢?
如果需要完整的code我会po出来,现在怕版面太乱。
matlab version :2013a
OS:windows 8
compiler vs2012
compile command:
mex -v -largeArrayDims c_code.cpp COMPFLAGS="/Ox $COMPFLAGS"
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.47.61
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1396274592.A.815.html