1.执行mcc -W lib:liba -T link:lib  oula 生成liba.dll及头文件
2.编译以下c代码,该代码写了一个mxMatDbl类

// callMatlab.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>
#include <matrix.h>
#include "../liba.h"

class mxMatDbl
{
    
public:
    mxArray *m_array;
    mxMatDbl()
    {
        m_array=0;
    }
    mxMatDbl(int h,int w,const double * pData)
    {
        m_array=mxCreateDoubleMatrix(h,w, mxREAL); 
        if(pData)
            memcpy(mxGetPr(m_array),pData,h*w*sizeof(double));
    }

    double * getPtr()
    {
        return mxGetPr(m_array);
    }
    operator double *()
    {
        return mxGetPr(m_array);
    }
    operator mxArray *()
    {
        return m_array;
    }
    double & operator ()(int y,int x)
    {
        assert(m_array);
        int W=w();
        int H=h();
        assert(y>=0 && y<H && x>=0 && x<W);
        return *(mxGetPr(m_array)+ y*W + x);
    }

    int h()
    {
        return mxGetM(m_array);
    }
    int w()
    {
        return mxGetN(m_array);
    }
    void Release()
    {
        if(m_array)
        {
            mxDestroyArray(m_array);
            m_array=0;
        }
    }

    ~mxMatDbl()
    {
        Release();
    }

    void Print()
    {
        for (int y=0;y<h();y++)
        {
            for (int x=0;x<w();x++)
            {
                printf("%g ",(*this)(y,x));
            }
            printf("\n");
        }
    }
protected:
private:
};

void TestMxMatDbl()
{
    double data[6]={1.0 ,2.0 ,3.0 ,4.0,5.0,6.0};
    mxMatDbl m(2,3,data);
    printf("w %d,h %d\n",m.w(),m.h());
    for (int y=0;y<m.h();y++)
    {
        for (int x=0;x<m.w();x++)
        {
            printf("%g ",m(y,x));
        }
        printf("\n");
    }
}

void callMatlab()
{
    libaInitialize();
    double _r[]={0,0,0};
    mxMatDbl r(3,1,_r);
    mxMatDbl R(3,3,0);
    if(0)
    {//这一局怎么不行??
        mxArray *prhs[1];prhs[0]=r.m_array;
        mxArray *plhs[1];plhs[0]=R.m_array;
        mlxOula(1, plhs, 1, prhs);
    }
    else
        mlxOula(1, &R.m_array, 1, &r.m_array);
    r.Print();
    R.Print();
    libaTerminate();
}
int main(int argc, char* argv[])
{
    //TestMxMatDbl();
    callMatlab();
    return 0;
}

c++调用matlab相关推荐

  1. Qt调用MATLAB

    Qt调用MATLAB 生成的dll经验分享 由于项目需要将生成的数据转成C3D运动捕捉格式,目前无C++转换算法,有MATLAB算法,考虑到C++重新码算法的时间,选择了将MATLAB算法直接转成C+ ...

  2. c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎

    Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...

  3. VS下调用Matlab引擎

    VS2008是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便.Matlab是一款将数值分析.矩阵计算.信号处理和图形显 ...

  4. c#调用Matlab的参数传递

    c#调用matlab函数时,需要将C#数据类型转换成Matlab数据类型. 此时,需要引用MWArray.dll文件.该程序集包含了与Matlab数据交换的类.其中,MWArray类及每个派生类提供创 ...

  5. java调用matlab 数组_JAVA调用matlab程序 输入输出数据转换

    JAVA调用matlab程序 输入输出数据转换 JAVA 程序调用 matlab函数(matlab导出jar包里的函数).JAVA解析matlab返回数据时,机器需要先安装matlab运行时环境 并 ...

  6. Java调用Matlab

    1 Java调用Matlab方法举例 ◆   将 Matlab 编写的 m 文件转化为 COM(Component Object Model) 组件,在 Java 程序中利用第三方工具包调用 com ...

  7. linux下java调用matlab程序,linux_java调用windows_matlab程序

    0 说明 本文为研究java和matlab的混合编程,进行了详细的测试和探索,以解决linux环境下java程序调用matlab程序的一个应用. linux端的环境 :(运行java程序并调用wind ...

  8. VS调用matlab

    可参照: VS2010调用Matlab的m文件所生产的dll实现二次规划算法.docx 全文-毕业论文-文档在线 http://max.book118.com/html/2013/1231/54228 ...

  9. Java调用Matlab程序

    Java调用Matlab程序_Macrocell-CSDN博客_java调用matlab

  10. codeblocks调用matlab,matlab engine: 在Codeblocks中使用C++调用matlab | 学步园

    平台:XP,Code::Blocks 10.05(包含gcc 4.4.1),matlab 2010b 方式:C++调用matlab引擎 设置步骤: (一)系统变量:path中添加MinGW\bin; ...

最新文章

  1. UVA 11054 Wine trading in Gergovia 葡萄酒交易 贪心+模拟
  2. ML之K-means:基于DIY数据集利用K-means算法聚类(测试9种不同聚类中心的模型性能)
  3. mysql 报表统计sql使用实例_mysql 案例~mysql元数据的sql统计
  4. 如何修改Oracle并发连接数的设置
  5. 解决sklearn.metrics指标报错ValueError: Target is multiclass but average=‘binary‘. Please choose anothe...
  6. 从入门到入土(三)RocketMQ 怎么保证的消息不丢失?
  7. linux rdma测试,硬件RDMA的驱动配置和测试
  8. Android开源框架Afinal第一篇——揭开圣女的面纱
  9. 苹果被拒的血泪史。。。(update 2015.11)
  10. 适配层java接口_Linux Framebuffer适配层释疑
  11. react-hooks/exhaustive-deps警告
  12. 大学计算机考试59分,大学期末考59分,你会找老师理论吗?很多人都猜错
  13. 下载Idea以及破解使用至2100年
  14. mongodb常用方法
  15. FBG光纤反射器,FTTX网络链路监控的理想光端
  16. 区块链游戏开发注意事项
  17. 少吃盐,一定要少吃盐!
  18. 专题论坛:云计算安全论坛
  19. Git 常用命令练习
  20. 记账的优缺点分析 聊聊记账这些事

热门文章

  1. 数据结构与算法笔记-------选择排序
  2. IDEA插件jrebel的配置使用
  3. Volley,Okhttp,Retrofit源码研究心得大总结
  4. ajax 请求与响应,实例解读ajax发送请求与数据响应
  5. Android中处理崩溃异常和分析日志的两种思路
  6. combox控件触发事件_Simulink(三角函数和代数约束模块)+Matlabgui(Gui实例)+Stateflow数据与事件(三)...
  7. 将某一列转换为字符类型_还在为数据清洗抓狂?这里有一个简单实用的清洗代码集...
  8. python ssd目标检测_基于自注意力的SSD图像目标检测算法
  9. python环境变量设置失败
  10. python和go哪个就业前景好_Python和Java就业前景对比