matlab调用C函数
时间: 2023-09-25 09:11:27 浏览: 35
在Matlab中调用C函数可以使用MEX文件。MEX文件是编译后的二进制文件,可以在Matlab中作为函数使用。以下是一个简单的示例:
1. 编写C函数
```c
/* myadd.c */
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double *a, *b, *c;
int i, n;
/* 获取输入参数 */
a = mxGetPr(prhs[0]);
b = mxGetPr(prhs[1]);
/* 计算输出结果 */
n = mxGetNumberOfElements(prhs[0]);
plhs[0] = mxCreateDoubleMatrix(n, 1, mxREAL);
c = mxGetPr(plhs[0]);
for (i = 0; i < n; i++) {
c[i] = a[i] + b[i];
}
}
```
2. 编译MEX文件
在Matlab命令行中输入以下命令:
```
mex myadd.c
```
将会生成myadd.mexw64(或myadd.mexa64等,根据操作系统不同而不同)文件。
3. 在Matlab中调用MEX文件
```matlab
% 调用MEX函数
a = [1, 2, 3];
b = [4, 5, 6];
c = myadd(a, b);
% 显示结果
disp(c);
```
输出结果为:
```
5
7
9
```