matlab与vs2008联合编程

留着慢慢学
原文地址:matlab与vs2008联合编程 作者:HuoChengfu

    折腾了一天,终于把程序写完,实现了matlab和vs2008的联合编程(算法程序时以前就用C写好了的,所以并没有花很多时间写算法),现在把过程记下来,以便借鉴。

1、安装matlab和vs2008

   安装完后,很有可能在matlab中输入命令mex -setup不会出现vs2008编译器选项,其中的设置细节可以参见我很早以前的一篇博文:http://blog.sina.com.cn/s/blog_4d1865f00100hz9e.html

 

2、在vs2008中编写的主函数必须是mexFunction(),相当于普通C程序的main()函数,他的几个参数的格式也是必须按固定的格式

    下面是我用的一个简单示例XXX.pp,分别说明浮点型、字符串型的参数传递。需要注意Path_Str, Path_Str.c_str()的输出,不要像我一样被表面现象欺骗了。

#include "mex.h"
#include <string>
#include "stdlib.h"
#include <iostream>

using namespace std;

 

void mexFunction( int nlhs, mxArray *plhs[],
     int nrhs, const mxArray*prhs[] )
{

 double *Encoder_Decoder_db = NULL;  
 string Path_Str="";     // the path of the bands
 unsigned int bufferlength = mxGetM(prhs[4])*mxGetN(prhs[4])+1;
 char *Path_Str_ch = new char[bufferlength];

short Encoder_Decoder;  // 0: encoder, 1: decoder 

 

 Encoder_Decoder_db = mxGetPr(prhs[0]);
 mxGetString(prhs[4], Path_Str_ch, bufferlength);

 Encoder_Decoder = (short) *Encoder_Decoder_db;
 Path_Str = Path_Str + Path_Str_ch;

 

 mexPrintf("%d,  %s, %s, %s", Encoder_Decoder, Path_Str_ch, Path_Str, Path_Str.c_str());

}

->mex -v XXXX.cpp

输入:XXX(1,'E:\paper')

输出:1,'E:\paper',@#,'E:\paper'

 

注意,当有多个源文件时,例如XXX.cpp调用了一个类(YYY.cpp和YYY.h),正确编译为

-> mex -v XXX.cpp YYY.cpp 

(PS:所有源文件都必须被编译,但h文件不用编译)

 

3. 程序写完了,加入相应的库函数即可

[转载]matlab与vs2008联合编程

[转载]matlab与vs2008联合编程

4.为了在vs环境中编译mex,除了按步骤3设置路径外,还需做一些工作。

 1)新建一个wind32 application,工程名为XXX(同前cpp文件),选择DLL和Empty project类型

 2)将XXX.cpp文件加入该project

 3)新建一个XXX.def文件,并保存在该project中

    XXX.def的内容为

    LIBRARY XXX.DLL

    EXPORTS

     mexFunction

  4)在preprocessor中加入libmx.lib,libmex.lib,libmat.lib即可

[转载]matlab与vs2008联合编程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MatlabVS2019的混合编程是指在Visual Studio 2019中使用Matlab引擎来调用和执行Matlab代码。这种混合编程的方式可以让你在VS2019中利用Matlab的强大数学和科学计算功能,以及现有的C++或C#代码。 要实现MatlabVS2019的混合编程,你需要按照以下步骤进行操作: 1. 安装Matlab引擎: 首先,确保你已经安装了Matlab软件,并且选择了安装Matlab引擎选项。这可以在Matlab安装程序中选择安装组件时完成。 2. 创建一个新的VS2019项目: 打开Visual Studio 2019,并创建一个新的项目,选择你想要的编程语言(如C++或C#)。 3. 添加Matlab引擎库文件: 在VS2019中,右键点击你的项目,在上下文菜单中选择“属性”选项。然后,在属性窗口中,找到“配置属性”->“链接器”->“输入”部分,并添加以下两个库文件路径: - Matlab安装目录\extern\lib\win64\microsoft (对于64位系统) - Matlab安装目录\bin\win64 (对于64位系统) 4. 添加Matlab头文件路径: 在属性窗口中,找到“配置属性”->“C/C++”->“常规”部分,添加以下头文件路径: - Matlab安装目录\extern\include 5. 编写和调用Matlab代码: 在你的VS2019项目中,编写用于调用Matlab引擎的代码。你可以使用Matlab引擎提供的函数来执行Matlab代码,并将结果返回到你的C++或C#程序中。 6. 构建和运行项目: 最后,构建并运行你的VS2019项目,以执行Matlab代码并查看结果。 以上是一个简单的介绍,帮助你开始MatlabVS2019的混合编程。具体的实现方法可能涉及到你的具体项目需求和编程语言。你可以参考Matlab官方文档和VS2019的相关资源来获得更多详细信息和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值