C++调用matlab代码

主要通过 mex将matlab代码编译成C/C++动态链接库(dll)

  • 编写matlab函数
  • 设置编译器
mex -setup
  • 编译matlab代码
mcc -C -W cpplib:multiTen -T link:lib multiTen.m
  • 配置动态链接库
    注意,ctf文件也要拷入到项目中,否则会出现初始化失败,程序崩溃现象
  • 代码调用
%matlab
function [ output_args ] = multiTen()
    num=100;
    output_args=num*10;
end
//c++
#include
#include"multiTen.h"
using namespace std;
int main()
{
    bool f=multiTenInitialize();
    cout << f << endl;
    mwArray res;
    multiTen(1, res);
    cout << res << endl;
    cin.get();
    return 0;
}
  • 结果


    运行结果

存在的问题

在vs2015中,生成解决方案后,执行程序会发生内存冲突问题

解决方案

用vs2015生成exe文件后,在命令行中运行,不会导致程序崩溃,目前原因不知道,可能是vs和matlab版本问题
参考链接

你可能感兴趣的:(C++调用matlab代码)