1. 程式人生 > >Matlab、C混合程式設計(Matlab呼叫C)

Matlab、C混合程式設計(Matlab呼叫C)

類似Matlab的指令碼語言的最大詬病就是執行速度慢,而C的編寫難度大,但執行速度快,所以用Matlab呼叫C可以很好的互補。
用Matlab呼叫C語言如下,其中mexFunction是一個介面函式,用來溝通Matlab與C語言之間的程式設計代溝。

nlhs:輸出引數數目   (Left-hand side)
plhs:指向輸出引數的指標 
nrhs:輸入引數數目
prhs:指向輸入引數的指標
#include "mex.h"    
double cadd(double x,double y);

void mexFunction(int nlhs,mxArray *plhs[], int
nrhs,const mxArray *prhs[]) { double *a; double b, c; plhs[0] = mxCreateDoubleMatrix(1, 1, mxREAL); a = mxGetPr(plhs[0]); b = *(mxGetPr(prhs[0])); c = *(mxGetPr(prhs[1])); *a = cadd(b, c); } double cadd(double x, double y) { return x + y; }