matlab与C混合编程调试-vs2010+matlab2012a
来源:互联网 发布:linux vim 查找字符串 编辑:程序博客网 时间:2024/05/16 09:08
matlab 对于科学计算来说非常方便易用,但是效率不太高,尤其是一些自己写的未经优化的程序。可以将计算比较耗时的算法用C语言实现然后在matlab下调用,但关键是如何编写和调试。编写还好说,查看一下mex借口函数的用法应该跟编写普通函数差不多,只不过参数需要经过转换,转换时细心点,再加上有点C指针的基本功就能胜任。
但是调试比较麻烦,之前一直以为是一件十分困难的事情,但是尝试之后才发现很简单
我们要做的有以下几点
1. 首先当然是编写一个C函数了(借用一个网上的简单例子)建立一个文件命名为 add.c 将下面的内容复制进去,然后放入一个文件夹,然后将matlab当前路径切换到
add.c 所在的文件夹
// add.c#include "mex.h" // 使用MEX文件必须包含的头文件// 执行具体工作的C函数double add(double x,double y){ return x + y;}// MEX文件接口函数void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]) {double *a;double b, c;plhs[0] = mxCreateDoubleMatrix(1, 1, mxREAL);a = mxGetPr(plhs[0]);b = *(mxGetPr(prhs[0]));c = *(mxGetPr(prhs[1]));*a = add(b, c);}
2.在matlab 命令窗口输入 mex -g add.c -output add -g 表示编译时加入调试信息,结果会生成add.mexw32.pdb文件如图所示,如果不加-g命令只会生成 add.mexw32文件
3.在打开vs2010 在顶端debug选项下选择attach to process选项进入
找到matlab进程,选择attach.然后自动关闭对话框,在vs中打开前面提到的add.c,然后再需要设置断点的地方设置断点如设置在下图中的位置,断点没有变红,没关系,接着进行。
4.在matlab同目录下写一个test.m文件,内容如下
5.在matlab下点调试按钮然后程序自动就跳到了刚才add.c设断点的地方且断点变红了.接下来就和调试C程序完全一样了。
0 0
- matlab与C混合编程调试-vs2010+matlab2012a
- 求大神解决VS2010旗舰版与matlab2012a混合编程 环境配置
- matlab2012a vs2012混合编程
- matlab 2012b与VS2010混合编程
- matlab与C混合编程
- matlab与c混合编程
- matlab与C混合编程
- MATLAB与C混合编程
- matlab与c混合编程
- TLD(matlab+c混合编程)调试运行
- MATLAB与VC++混合编程(1)——在MATLAB下调试C/C++程序
- MATLAB与VC++混合编程(1)——在MATLAB下调试C/C++程序 【转】
- MATLAB与VC++混合编程(1)——在MATLAB下调试C/C++程序
- matlab与c(c++)混合编程
- matlab与C++/C 混合编程
- matlab 2012 vs2010混合编程
- matlab 2012 vs2010混合编程
- C++/Matlab混合编程(vs2010和matlabR2014a)
- Android下GridView结合LongClick来处理contextmenu
- MATLAB中的特殊变量
- csv转lua
- HTML设置元素透明度
- vmware虚拟机配置
- matlab与C混合编程调试-vs2010+matlab2012a
- 如何在Word2003中添加上下标文字
- UITableViewCell的选中时的颜色及tableViewCell的selecte与deselecte
- flot - jQuery 图表插件(jquery.flot)使用
- 内存管理
- Linux系统下增加多串口
- js 将json字符串转换为json对象
- 归并排序
- Oracle 常见等待事件