matlab与C联合编程

Last edited by
AI summary
本文介绍了如何在MATLAB中配置C语言编译器并进行联合编程,包括设置编译器、编写C代码、在MATLAB中调用C程序以及MATLAB与C/C++数组之间的转换。强调了编译器选择和运行时库的要求,并提供了示例代码和操作步骤。
Tags
MATLAB C Programming
Compiler Configuration
MEX Files
Last edited time
Sep 23, 2024 02:42 PM

在MATLAB中配置C语言编译器

在这之前必须安装好编译器,可以是VC完整版,绿色版貌似不行啊,
1. mex –setup设置编译器选项,将入口函数为mexFunction的C/C++文件编译成mex(DLL)文件
2. mbuild -setup设置编译器选项,将入口函数为main的C/C++文件生成可以独立运行的C应用程序

MATLAB调用C程序测试

  1. C代码如下,文件名为test.c,假设保存在E:/test下,
    1. 在MATLAB中运行cd E:/test转到存放C文件路径,使用mex test.c编译,然后运行test,则在Commond windows下输出Hello World, 5!
    1. 在C/C++中引用常用头文件
      1. 在C/C++中常用与matlab操作相关的函数
        1. mexErrMsgTxt : 打印错误信息,会中断程序执行
          mxGetM/mxGetN:获取matlab中矩阵的行列
          mxGetPr : 获取输入矩阵的指针
          mxGetScale:如果传入的为单个值,则获取传入的值
          mxCreateNumericMatrix/mxCreateDoubleMatrix:创建输出矩阵
      1. MATLAB矩阵与C/C++数组之间的转换
        1. matlab中的元素索引从1开始,而C/C++则是从0开始。
          matlab中的矩阵索引顺序是从列开始的,因此matlab中的a(i,j)将转化为C/C++中的a[j’][i’] (其中j’=j-1, i’=i-1)

      C程序调用MATLAB测试

      1. 编写C程序后后使用下面的编译选项 mcc -B csharedlib:MyFunc MyFunc.m
      1. 在C编译器中使用共享库来调用matlab程序
      Loading...