MATLAB调用C总结

1、生成mex文件两种方式:

MATLAB:mex filename.cpp

C:http://www.cnblogs.com/lukylu/p/4042306.html;

如果有错,就结合此配置方式:http://www.jb51.net/article/34727.htm

2、VS中单步调试mex:

1)将vs生成的mexw文件放到(替换原先的mexw文件)MATLAB代码要调用的地方

2)vs2010-Tools-附加到线程 Attach to process-选择matlab;在源代码Test.cpp里设置断点。 

3)运行要调用mexw文件的MATLAB代码

ps:第二次调试之前要在MATLAB命令行用clear filename.mexw64命令释放此文件;

        如果MATLAB和vs的项目在相同路径,即vs生成的mexw就是MATLAB调用的那个问卷,则改变CPP文件后重新生成mexw64文件之前也要clear释放,不然会生成失败

 

3、用新生成的mexw文件替换MATLAB之前调用的mexw文件时,先在MATLAB命令行用clear filename.mexw64命令释放此文件,这样替换的时候就不会出现mexw文件被占用的问题了

 

4、因为指针空间分配错误,导致越界,从而每次运行MATLAB都出错或直接闪退!!!

5、对于矩阵A,MATLAB按列数,数完一列再数第二列,如下a(3)=8, a(6)=9;

MATLAB调用C总结_第1张图片

把矩阵 a 传给C的mex函数参数并按照(i,j)坐标索引在MATLAB对应位置的值:

for(i=0;i

在MATLAB命令行输出:

6、作为索引(如点坐标)传入vs的矩阵要先减1,因为c语言索引从0开始,MATLAB所以从1开始。

你可能感兴趣的:(C/C++,Matlab)