Matlab调用C++代码的具体mex实现详解

本文介绍了如何在Matlab中通过mex函数调用C++代码,包括环境配置、C++代码修改以及MEX文件的编译。重点是将C++的main函数替换为mexFunction作为Matlab调用的入口,并演示了简单的数据传递示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里记录一下自己的挖坑、填坑过程。从mex环境到与成功调用

在具体的实现中,由于matlab具有很强的矩阵运算能力。而对于处理太多的循环结构运算却显得很吃力。所以在具体的实现中,我们可以在Matlab中调用其他语言的程序来达到最高效率的实现。这里我主要是是matlab来调用写好的C++代码为例。当然这也完全使用C语言的代码调用实现。

一、首先,我们需要有自己的编程环境,我的是matlab2017+MinGW-w64 C/C++ 编译器。由于自己的VS2015环境不能被matlab识别。(原因多半是Matlab和VS2015的 安装顺序有关:先安装VS之后再安装Matlab)。关于Matlab的安装这里就不赘述,百度自己解决。

1.MinGW-w64 C/C++编译器的安装,在matlab中虽然附加功能管理器可以安装,但是速度慢的惊人。我们可以直接到网上下载安装。这个TDM-GCC-64’搜索下载去吧!记得w64需要5.3的版本才能在matlab2017B中支持。(这里可以用5.3的安装文件来 覆盖TDM-GCC-64’文件达到)

2.安装之后重启Matlab,进入之后在命令行中输入mex -setup安装编译器,这时默认是C的编译环境。可选择mex -setup C++的选项;

以上就完成了环境的搭建配置。这一过程问题很多。慢慢摸索。

二、以下是我们的关键部分,对 C++代码的重写mex主函数入口(mexfunction)重点**
mex调用C++代码的关键过程有重写原本的main函数,改为mexfunction();该函数是matlab调用的主要入口。如果不重写 会报错如下:LINK : error LNK2001: 无法解析的外部符号 mexFunction

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值