在Matlab中调用C/C++程序<四>
2013-06-17 10:48
405 查看
本文转自:herohbc
在编写mexFunction中,语法错误可以在编译时由编译器给出,但逻辑错误需要通过调试才能发现。本文介绍如何在Visual Studio2008中调试mex函数。这也是本系列的最后一篇文章。
我们采用上一篇文章中的例子,即用OpenCV提供的函数计算一个方阵的行列式,演示如何进行调试。
1. 在VS2008中新建一个工程,具体参见文章《在Matlab中调用C/C++程序(3)》,网址为:http://hi.baidu.com/herohbc/item/2bc1b62348be8857c28d5952
2. 在mexFunction中设置断点,并在Debug模式下编译工程,如下图所示。
3. 打开Matlab,将Current Folder设置为当前工程所在的目录下的Debug文件夹。例如,本程序的Current Folder是F:\temp\Introduction to Algorithms\det_opencv\Debug。
4. 在Visual Studio 2008中,Tools->Attach to Process...,在打开的对话框中选择Matlab.exe,然后单击Attach按钮,如下图所示。
4. 在Matlab的Command Window中输入命令:
>> A=rand(4,4);
>> d=det_opencv(A);
这时,程序运行到det_opencv的断点处,如下图所示。这样我们就可以一步步的进行调试了。在调试的过程中可随时查看变量的值是否正确。
在编写mexFunction中,语法错误可以在编译时由编译器给出,但逻辑错误需要通过调试才能发现。本文介绍如何在Visual Studio2008中调试mex函数。这也是本系列的最后一篇文章。
我们采用上一篇文章中的例子,即用OpenCV提供的函数计算一个方阵的行列式,演示如何进行调试。
1. 在VS2008中新建一个工程,具体参见文章《在Matlab中调用C/C++程序(3)》,网址为:http://hi.baidu.com/herohbc/item/2bc1b62348be8857c28d5952
2. 在mexFunction中设置断点,并在Debug模式下编译工程,如下图所示。
3. 打开Matlab,将Current Folder设置为当前工程所在的目录下的Debug文件夹。例如,本程序的Current Folder是F:\temp\Introduction to Algorithms\det_opencv\Debug。
4. 在Visual Studio 2008中,Tools->Attach to Process...,在打开的对话框中选择Matlab.exe,然后单击Attach按钮,如下图所示。
4. 在Matlab的Command Window中输入命令:
>> A=rand(4,4);
>> d=det_opencv(A);
这时,程序运行到det_opencv的断点处,如下图所示。这样我们就可以一步步的进行调试了。在调试的过程中可随时查看变量的值是否正确。
相关文章推荐
- 在Matlab中调用C/C++程序<三>
- 在Matlab中调用C/C++程序<一>
- 在Matlab中调用C/C++程序<二>
- matlab练习程序(c/c++调用matlab<dll>)
- VC与Matlab混合编程之调用动态链接库dll(C++)——<二>
- matlab练习程序(c/c++调用matlab<engine>)
- <C++>计算程序运行时间
- C++ call matlab on <mac + xcode >
- VC和Matlab混合编程之调用Engine引擎方式<一>
- 编写高质量代码之改善C++程序语法篇3<内存管理 >
- Java 中的 int 与 Integer 用于 List<Integer> 时,以及通过打印变量检测程序运行和函数调用次数计数
- <<c++ primer>>文本查询程序
- JNI方法调用C++类库 <二>
- 改善C++程序的建议:语法篇1<从C继承而来的特性>
- VC与Matlab混合编程之调用动态链接库dll<二>
- C++封装SQLite实例<四>
- (Boolan)C++设计模式 <四> ——观察者模式(Observer)
- ROS学习<四> 发布与订阅,服务与客户(C++)
- 编写高质量代码之改善C++程序语法篇2<从C到C++需要做的改变>
- ARM汇编 C语言 C++ 相互调用 <此方法在armv8 测试成功 !>