如果你是需要快速搭建一个matlab调c/c++环境,这篇文章可以参考
有了c代码,想在matlab里面调用,可以参考我这个模板
matlab调用代码:
clear all
close all
clc
input1 =1;
input2 =2;
[output1,output2] = mexfunction(input1,input2);
output1
output2
这里面强调两个概念
1、Matlab里面所有变量都是矩阵,包括单变量也是1*1的矩阵
2、Maltab矩阵按列优先访问,这个和fortran保持一致
Cpp代码:
#include "mex.h"
void c_func(double input1,double input2,double *output1,double *output2)
{
}
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double *pdata;
// mcnoidal(waveheight,waveperiod,0.02,waterdeepth ,0, datanum,1, waveheight,flapdeepth);
pdata=mxGetPr(prhs[0]);
double input1 = *pdata;
int M = mxGetM(prhs[0]);
int N = mxGetN(prhs[0]);
printf("%d * %d\n",M,N);
pdata=mxGetPr(prhs[1]);
double input2 = *pdata;
int m = 3;
int n