Matlab调用c语言程序代码
MATLAB编译并调用C、C++程序

会在 test.cpp 的旁边生成 test.mexw32 文件,这个文件可以供 MATLAB
调用实现 test.cpp 中的 C、C++函数的功能。
在 MATLAB 中调用 C、C++程序:
将 MATLAB 的工作目录切换至上面已编译好的 test.mexw32 所在的目
}
dbX = mxGetScalar( prhs[ 0 ] ); dbY = mxGetScalar( prhs[ 1 ] );
/* Create matrix for the return argument. */ plhs[0] = mxCreateDoubleMatrix( mrows, ncols, mxREAL ); plhs[1] = mxCreateDoubleMatrix( mrows, ncols, mxREAL );
mrows = mxGetM(prhs[0]); ncols = mxGetN(prhs[0]); if ( mxIsComplex(prhs[0]) ||
!(mrows == 1 && ncols == 1)) {
mexErrMsgTxt("The First input must be a noncomplex scalar double precision.");
/* Assign pointers to each input and output. */ pdbA = mxGetPr( plhs[0] ); pdbG = mxGetPr( plhs[1] );
Desc2Pol( dbX, dbY, pdbA, pdbG ); }
Matlab调用C程序

Matlab中可以调用C编写的程序,并且C程序中可以调用其他的C函数。
我们只需要修改C程序的入口函数,而不用修改其他函数。
下面以一个例子进行说明,我们利用C函数产生一个正态分布序列,然后在Matlab中调用。
这个序列的输入包括均值mean,方差delta,随机数产生的种子seed。
在正态分布函数中,我们会调用均匀分布的一个函数。
原C程序如下://均匀分布的函数double uniform(double a, double b, long int *seed){double t;*seed = 2045 * (*seed) + 1;*seed = *seed - (*seed/1048576) * 1048576;t = (*seed)/1048576.0;t = a + (b - a) * t;return t;}//正态分布的函数double gauss(double mean, double sigma, long int *seed){int i;double x,y;for(x=0,i=0;i<12;i++){x += uniform(0.0,1.0,seed);}x = x - 6.0;y = mean + x * sigma;return y;}因为我们要产生正态分布的序列,所以需要对gauss这一个函数进行修改:#include "mex.h"double uniform(double a, double b, int * seed){double t;*seed = 2045 * (*seed) + 1;*seed = *seed - (*seed/1048576) * 1048576;t = (*seed)/1048576.0;t = a + (b - a) * t;return t;}void mexFunction(int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[]){double mean,delta;int seed;double *t;int i;double x;//input parametersmean = mxGetScalar(prhs[0]);delta = mxGetScalar(prhs[1]);seed = mxGetScalar(prhs[2]);//output parameterplhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);t=mxGetPr(plhs[0]);//functionseed = 2045 * (seed) + 1;seed = seed - (seed/1048576) * 1048576;for(x=0,i=0;i<12;i++){x += uniform(0,1,&seed);}x = x - 6.0;*t = mean + x*delta;}头文件mex.h是matlab和C混合编程所用。
C语言与matlab接口

C语言与matlab接口MATLAB作为世界顶尖的数学应用软件,以其强大的工程计算、算法研究、工程绘图、应用程序开发、数据分析和动态仿真等功能,在航空航天、机械制造和工程建筑等领域发挥着越来越重要的作用。
而C语言功能丰富,使用灵活方便,目标程序效率高。
既有高级语言的优点,又有低级语言的特点。
因此,C语言是目前应用最广的编程语言。
虽然MATLAB是一个完整的、功能齐全的编程环境,但在某些情况下,与外部环境的数据和程序的交互是非常必须而且有益的。
众所周知,MATLAB是用M语言编程,不能在M文件中直接调用C语言程序。
可以通过MATLAB提供的应用编程接口(API)来实现与外部的接口,在MATLAB 环境中实现调用C语言或Fortran程序、输入或输出数据以及和其他软件程序间建立客户/服务器关系等功能。
MATLAB中调用C语言程序,必须通过MEX文件来实现。
一、C语言的MEX文件的结构C语言的MEX文件是一种动态连接子程序,可以象调用M文件一样调用它。
MEX文件主要有以下几方面的应用:(1)在MATLAB中,M文件的计算速度特别是循环迭代的速度远比C语言慢,因此可以把要求大量循环迭代的部分用C语言编写为MEX文件,提高计算速度。
(2)已经开发的C语言程序,则不必将其转化为M文件而重复劳动,通过添加入口程序mexFunction,可以由MA TLAB调用。
(3)直接控制硬件,如A/D采集卡,D/A输出卡等,以用于数据采集或控制应用。
C语言的MEX文件的源程序由两个非常明显部分组成:(1)计算程序,即在MEX文件中完成计算功能的程序代码,计算程序可以是普通的C语言程序,按照C语言规则编写即可(2)入口程序,将计算程序与MATLAB连接的入口函数mexFunction。
入口程序mexFunction相对要复杂一些,函数中有四个参数nlhs、plhs、nrhs和prhs。
这里nlhs是输出数据的个数,plhs是指向mxArray(MATLAB中所有数据都由mxArray定义)的输出数据的指针,nrhs是输入数据的个数,prhs是指向mxArray 的输入数据的指针。
matlab c编译

matlab c编译
MATLAB C编译是将MATLAB代码转换为C代码的过程,以便将其集成到其他应用程序或系统中。
以下是MATLAB C编译的一般步骤:
1. 编写MATLAB代码:首先,您需要编写要在C中编译的MATLAB代码。
这可以是任何有效的MATLAB脚本或函数。
2. 使用MATLAB Coder生成C代码:MATLAB Coder是MATLAB的一个附加工具包,它可以将MATLAB代码转换为C和C++代码。
要使用MATLAB Coder,您需要安装它,并确保您的MATLAB版本与您的C代码生成器兼容。
3. 打开MATLAB Coder应用程序:在MATLAB中,打开MATLAB Coder 应用程序。
您可以通过在命令窗口中键入“coder”来打开它。
4. 配置生成选项:在MATLAB Coder中,您需要配置生成选项。
这包括指定要生成的代码类型(C或C++),指定输入和输出文件的路径,以及设
置其他选项。
5. 生成C代码:在配置好生成选项后,您可以生成C代码。
在MATLAB Coder中,选择“Build”选项,然后选择“Build All”以生成C代码。
6. 使用生成的C代码:生成的C代码将保存在您指定的输出文件中。
您可
以在其他应用程序或系统中使用此代码,就像使用任何其他C代码一样。
需要注意的是,不是所有的MATLAB函数都可以转换为C代码。
一些特定的函数和操作可能无法被转换为C代码,或者转换后的效果可能不如在MATLAB中直接执行。
此外,生成的C代码可能需要特定的编译器和工具链才能正确编译和运行。
matlab 函数编译c

MATLAB函数编译C介绍MATLAB是一种广泛使用的高级技术计算语言和环境,主要用于算法开发、数据可视化、数据分析和数值计算等领域。
然而,有时候我们可能需要将MATLAB的函数编译成C语言,以提高代码的执行效率或者将其集成到其他C/C++项目中。
本文将介绍如何使用MATLAB将函数编译成C语言的过程和一些常见的注意事项。
MATLAB函数编译的概述MATLAB提供了一个功能强大的编译器,可以将MATLAB代码转换成可执行的二进制文件,如可执行程序(.exe)或者动态链接库(.dll)。
在函数级别上,我们可以选择将MATLAB函数编译成C语言代码,这样就可以在其他项目中直接调用这些函数,无需依赖MATLAB运行时环境。
编译后的C代码具有较高的性能,并且可以与其他编程语言无缝集成。
编译C的步骤下面是将MATLAB函数编译成C语言的基本步骤:步骤1:选择要编译的函数首先,我们需要选择要编译的MATLAB函数。
通常情况下,建议选择一些计算密集型的函数进行编译,这样可以获得更好的执行性能提升。
步骤2:使用MATLAB的codegen命令MATLAB提供了一个名为codegen的命令,用来将MATLAB函数编译成C语言代码。
以下是使用codegen命令的基本语法:codegen -config cfg functionName在上面的命令中,cfg是一个编译器配置对象,用于指定编译器的选项和参数,functionName是要编译的函数的名称。
步骤3:配置编译器选项在使用codegen命令之前,我们需要配置编译器选项。
可以使用MATLAB的coder.config命令来创建一个编译器配置对象,并使用该对象的属性来配置编译器选项。
例如,可以设置编译目标、优化级别、输出文件名等。
步骤4:调用codegen命令进行编译配置好编译器选项后,我们可以调用codegen命令进行编译。
编译过程可能需要一些时间,具体取决于函数的复杂度和计算量。
matlab提取波峰波谷c语言

matlab提取波峰波谷c语言Matlab提供了强大的信号处理工具箱,可以方便地进行波峰和波谷的提取。
在本文中,我将使用Matlab提取信号中的波峰和波谷,并将其实现成C语言代码。
首先,我们需要明确波峰和波谷的定义。
在一个信号中,波峰是局部最大值,而波谷则是局部最小值。
因此,我们的目标是寻找信号中的这些极值点。
步骤1:加载信号数据首先,我们需要加载一个信号数据。
假设我们有一个一维的信号,我们可以通过以下代码将其加载到Matlab中:matlabsignal = load('signal_data.txt');步骤2:寻找波峰要寻找信号中的波峰,我们可以使用Matlab中的`findpeaks`函数。
该函数可以返回信号中的波峰位置及其对应的幅值。
matlab[peaks, locations] = findpeaks(signal);通过上述代码,`peaks`变量将存储信号中的波峰幅值,`locations`变量将存储波峰在信号中的位置。
步骤3:寻找波谷类似于寻找波峰,我们可以使用Matlab中的`findpeaks`函数来寻找信号中的波谷。
但是,由于该函数是寻找波峰的函数,默认情况下只返回波峰。
因此,我们需要将信号取负值,以便让波峰变成波谷。
然后,我们再次使用`findpeaks`函数来寻找信号中的波谷。
matlab[troughs, locations] = findpeaks(-signal);通过上述代码,`troughs`变量将存储信号中的波谷幅值,`locations`变量将存储波谷在信号中的位置。
步骤4:绘制结果为了验证我们的提取结果,我们可以使用Matlab中的`plot`函数将波峰和波谷绘制在信号图上。
matlabfigure;plot(signal);hold on;scatter(locations, peaks, 'r', 'filled');scatter(locations, -troughs, 'g', 'filled');legend('Signal', 'Peaks', 'Troughs');通过上述代码,我们先绘制信号,然后利用`scatter`函数绘制波峰和波谷。
在matlab中调用c程序

1.Maltab 编译Mex文件(不可调试)1.1hello word在matlab命令行中输入:mex -setup选择合适编译器,完成设置。
新建一个文件,输入:#include <mex.h>void mexFunction(int nlhs ,mxArray *plhs[] ,int nrhs, const mxArray *prhs[]){mexPrintf("Hello word!");}把上面程序保存为一个C文件,如hello.c在command window下运行>> mex hello.c>>结束之后在current folder 窗口里会有一个hello.mexw32文件。
在command window下运行>> hello()Hello word!1.2如果是多维数组并不能用Arr[i][j]的格式寻址,在参数在C里只是一维数组,一维数组按列排列,C语言是按行排列的,如[a b c d;e f g h]C语言在内存中是按a b c d e f g h排列,而matlab是按 a e b f c g d h排列的。
如果要变成C语言可Arr[i][j]索引的格式,可用for循环转化打印函数:mexPrintf()相当于matlab的disp函数,mexPrintf函数里需要打印的部分必须用""而不能用''子函数的问题:子函数有两种方式,一种采用return值得方式返回值另一种方式为利用参数返回值,把需要return的值直接赋给形参。
多个.c文件的编译:多个.c文件中只能存在一个mexFunction函数可用mex ('a.c','b.c','d.c')的格式编译2.在VS中调试mex(1)在vs中建立dll工程,建立project.cpp文件,输入#include "project.h"#include <mex.h>void mexFunction(int nlhs ,mxArray *plhs[] ,int nrhs, const mxArray *prhs[]){mexPrintf("Hello word!");}建立.h文件,输入#include "matrix.h"#include "mex.h"#define TESTMATLAB_EXPORTS#ifdef TESTMATLAB_EXPORTS#define MEX_FUNCTION_API __declspec(dllexport)#else#define MEX_FUNCTION_API __declspec(dllimport)#endifMEX_FUNCTION_API void mexFunction(int nlhs, mxArray* plhs[], int nrhs, mxArray* prhs[]);建立project.def文件,输入LIBRARYEXPORTSmexFunction(2)添加include和lib路径若matlab为32位,liblujing为:D:\Program Files\MATLAB\R2014a\extern\lib\win3264位则为:D:\Program Files\MATLAB\R2014a\extern\lib\win64\microsoftinclude路径为:D:\Program Files\MATLAB\R2014a\extern\include(3)添加链接器附加依赖项libmx.lib libeng.lib libmat.lib libmex.lib,将连接器输出的文件名称后缀,project.dll改为project.mexw32,64位改为project.mexw64(4)设置C/C++-代码生成-运行库为多线程调试(/Mtd)(5)若为64位matlab,还需将vs的编译平台设置为x64(6)生成解决方案,会在debug目录生成project.mexw64.(7)打开matlab,将工作目录改到如上debug目录,包含project.mexw64文件(8)开始调试,在vs中cpp文件设置端点,选择工具-附件到进程-matlab-添加,再在matlab中运行该文件,即可跳入端点处.(9)调试完成后,将project.mexw64放入matlab的目录中,可以直接调用。
MATLAB调用C程序、调试和LDPC译码

MATLAB调⽤C程序、调试和LDPC译码MATLAB是⼀个很好⽤的⼯具。
利⽤MATLAB脚本进⾏科学计算也特别⽅便快捷。
但是代码存在较多循环时,MATLAB运⾏速度极慢。
如果不想放弃MATLAB中⼤量⽅便使⽤的库,⼜希望代码能迅速快捷的运⾏,可以考虑将循环较多的功能采⽤C编写,MATLAB调⽤。
本⽂将概述这⼀过程。
虽然本⽂以LDPC译码算法为例,但不懂该算法不影响本⽂阅读。
1. 起因最开始⽤MATLAB写的LDPC译码算法中,其中⼀个版本是,⾥⾯有三重循环,运⾏速度极慢。
后来考虑了,通过算法的合理划分以及内置函数调⽤,成功将三重循环修改为1层,具体这⼀版本的代码可见。
通过这⼀⼿段,函数的运⾏速度提⾼了⼏倍乃⾄⼏⼗倍。
虽然这⼀⽅法下运⾏速度依旧⽐不过MATLAB⼯具箱中的comm.LDPCDecoder,远⽐不上利⽤GPU的comm.gpu.LDPCDecoder,但胜在可明确算法并具有⼀定扩展性。
起初也注意到可以通过MATLAB调⽤C程序来加速程序运⾏,但向量化后的代码凑活能⽤,加上有时也可调⽤更为强⼤的内置函数,这⼀想法⼀直没有付诸实践。
这⼏天想好好整理⼀下代码,遂萌发了写⼀个C版本译码算法的想法。
代码现在的状态是“能⽤”,这⾥把相关经验总结分析在此。
2. MATLAB调⽤C程序这⼀部分的内容在的中已经有较为详细的介绍了,想要正确调⽤C程序,关键概括为2点。
机器上装有MATLAB编译器,可通过在MATLAB命令⾏窗⼝输⼊mex -setup进⾏具体设置。
有⼀个正确的接⼝⼦程序mexFunction完成MATLAB和C程序之间的数据转换和程序调⽤这⾥给出我写得mexFunction(注意这个代码写得不好,没有任何判断,没有健壮性……)void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {double* llr = (double*)mxGetPr(prhs[0]);int* rownum = mxGetPr(prhs[1]);int* colnum = mxGetPr(prhs[2]);int* trans = mxGetPr(prhs[3]);double* state = mxGetPr(prhs[4]);plhs[0] = mxCreateDoubleMatrix(1, state[1], mxREAL);double* r =mxGetPr(plhs[0]);ldpcDec( r ,llr, rownum,colnum, trans,state);}mexFunction的规范在的⼀⽂中已有提及,即nlhs:输出参数数⽬plhs:指向输出参数的指针nrhs:输⼊参数数⽬prhs:指向输⼊参数的指针例如,在matlab命令⾏中使⽤[a,b]=test(c,d,e)调⽤mex函数test时,传给test的这四个参数分别是2,plhs,3,prhs其中:prhs[0]=cprhs[1]=dprhs[2]=e由此可以解释上述mexFunction,⽽命令plhs[0] = mxCreateDoubleMatrix(1, state[1], mxREAL) 则定义了⼀⼤⼩为1 × state[1]的矩阵,做为函数的返回值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab调用c程序方法:第一步:要先在matlab中安装c程序编译器,步骤如下:键入命令:mex -setup;选择c/c++编译器;选择c/c++编译器版本;确认。
第二步:键入:mex *.c实例介绍:【转】如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数:double add(double x, double y) {return x + y;}现在我想要在Matlab中使用它,比如输入:>> a = add(1.1, 2.2)3.3000要得出以上的结果,那应该怎样做呢?解决方法之一是要通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便。
MEX文件是由原C代码加上MEX文件专用的接口函数后编译而成的。
可以这样理解,MEX文件实现了一种接口,它把在Matlab中调用函数时输入的自变量通过特定的接口调入了C函数,得出的结果再通过该接口调回Matlab。
该特定接口的操作,包含在mexFunction这个函数中,由使用者具体设定。
所以现在我们要写一个包含add和mexFunction的C文件,Matlab调用函数,把函数中的自变量(如上例中的1.1和2.2)传给mexFunction的一个参数,mexFunction把该值传给add,把得出的结果传回给mexFunction的另一个参数,Matlab通过该参数来给出在Matlab语句中调用函数时的输出值(如上例中的a)。
比如该C文件已写好,名为add.c。
那么在Matlab中,输入:>> mex add.c就能把add.c编译为MEX文件(编译器的设置使用指令mex -setup),在Windows 中,MEX文件类型为mexw32,即现在我们得出add.mexw32文件。
现在,我们就可以像调用M函数那样调用MEX文件,如上面说到的例子。
所以,通过MEX文件,使用C函数就和使用M函数是一样的了。
我们现在来说mexFunction怎样写。
mexFunction的定义为:void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]) {}可以看到,mexFunction是没返回值的,它不是通过返回值把结果传回Matlab 的,而是通过对参数plhs的赋值。
mexFunction的四个参数皆是说明Matlab调用MEX文件时的具体信息,如这样调用函数时:>> b = 1.1; c = 2.2;>> a = add(b, c)mexFunction四个参数的意思为:nlhs = 1,说明调用语句左手面(lhs-left hand side)有一个变量,即a。
nrhs = 2,说明调用语句右手面(rhs-right hand side)有两个自变量,即b 和c。
plhs是一个数组,其内容为指针,该指针指向数据类型mxArray。
因为现在左手面只有一个变量,即该数组只有一个指针,plhs[0]指向的结果会赋值给a。
prhs和plhs类似,因为右手面有两个自变量,即该数组有两个指针,prhs[0]指向了b,prhs[1]指向了c。
要注意prhs是const的指针数组,即不能改变其指向内容。
因为Matlab最基本的单元为array,无论是什么类型也好,如有double array、cell array、struct array……所以a,b,c都是array,b = 1.1便是一个1x1的double array。
而在C语言中,Matlab的array使用mxArray类型来表示。
所以就不难明白为什么plhs和prhs都是指向mxArray类型的指针数组。
完整的add.c如下:// add.c#include "mex.h" // 使用MEX文件必须包含的头文件// 执行具体工作的C函数double add(double x, double y) {return x + y;}// MEX文件接口函数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 = add(b, c);}mexFunction的内容是什么意思呢?我们知道,如果这样调用函数时:>> output = add(1.1, 2.2);在未涉及具体的计算时,output的值是未知的,是未赋值的。
所以在具体的程序中,我们建立一个1x1的实double矩阵(使用mxCreateDoubleMatrix函数,其返回指向刚建立的mxArray的指针),然后令plhs[0]指向它。
接着令指针a 指向plhs[0]所指向的mxArray的第一个元素(使用mxGetPr函数,返回指向mxArray的首元素的指针)。
同样地,我们把prhs[0]和prhs[1]所指向的元素(即1.1和2.2)取出来赋给b和c。
于是我们可以把b和c作自变量传给函数add,得出给果赋给指针a所指向的mxArray中的元素。
因为a是指向plhs[0]所指向的mxArray的元素,所以最后作输出时,plhs[0]所指向的mxArray赋值给output,则output便是已计算好的结果了。
上面说的一大堆指向这指向那,什么mxArray,初学者肯定都会被弄到头晕眼花了。
很抱歉,要搞清楚这些乱糟糟的关系,只有多看多练。
实际上mexFunction是没有这么简单的,我们要对用户的输入自变量的个数和类型进行测试,以确保输入正确。
如在add函数的例子中,用户输入char array便是一种错误了。
从上面的讲述中我们总结出,MEX文件实现了一种接口,把C语言中的计算结果适当地返回给Matlab罢了。
当我们已经有用C编写的大型程序时,大可不必在Matlab里重写,只写个接口,做成MEX文件就成了。
另外,在Matlab程序中的部份计算瓶颈(如循环),可通过MEX文件用C语言实现,以提高计算速度。
********************************************************************* ********************************************************************* ***mex 的目的,通过C/C++语言编写代码,在Matlab中将其编译成mex文件主要可以做以下几方面的事情:1、加快程序的执行速度. Matlab在for上如老牛拉车的速度确实让人抓狂.2、将Matlab作为C++的开发调试环境.尤其是有大量数据需要处理时,用Matlab 观察其中间结果十分方便.3、据称可以弥补Matlab硬件设备接口的薄弱环节.今天写了第一个使用MEX.一个简单的对Matlab普通数值矩阵的操作.其中Matlab规定的与操作系统版本有关的mwSize,mwIndex, size_t在32位系统上其实本质上就是int,所以一律用int代替.#include "mex.h"#include <iostream>void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray*prhs[]){int i,j,k;int index;double* pr=NULL;double* pi=NULL;int M,N;int ndim;int dims[2];for (i=0;i<nrhs;i++){if ((mxIsDouble(prhs[i]))&&(mxGetNumberOfDimensions(prhs[i])==2)) {pr=mxGetPr(prhs[i]);pi=mxGetPi(prhs[i]);M=mxGetM(prhs[i]);N=mxGetN(prhs[i]);ndim=mxGetNumberOfDimensions(prhs[i]);mexPrintf("变量%d:\n",i);for (j=0;j<M;j++){dims[0]=j;for (k=0;k<N;k++){dims[1]=k;index=mxCalcSingleSubscript(prhs[i],ndim,dims);if (pi==NULL){mexPrintf("%6.2f",pr[index]);}else{mexPrintf("%6.2f+ %6.2fj",pr[index],pi[index]);}}mexPrintf("\n");}}else{mexPrintf("input NUMB %d matrix is not 2 dims&double numericalarray\n",i);}}}Result:>>mex test.cpp>> test(a,b,c)变量0:0.35 0.62 0.830.20 0.47 0.590.25 0.35 0.55变量1:0.92 0.38 0.53 0.570.29 0.57 0.78 0.470.76 0.08 0.93 0.010.75 0.05 0.13 0.34变量2:0.16+ 0.87j 0.60+ 0.43j 0.45+ 0.14j 0.83+ 0.85j 0.11+ 0.08j 0.79+ 0.08j 0.26+ 0.91j 0.08+ 0.87j 0.54+ 0.62j 0.96+ 0.24j 0.31+ 0.40j 0.65+ 0.18j 0.23+ 0.58j 1.00+ 0.35j 0.00+ 0.12j 0.53+ 0.26j 0.69+ 0.26j 0.91+ 0.55j 0.08+ 0.51j 0.77+ 0.18j 0.17+ 0.80j 0.75+ 0.15j 0.15+ 0.14j 0.44+ 0.40j 0.82+ 0.24j >> help test本程序用于调试mx______函数.Matlab调用c程序方法:第一步:要先在matlab中安装c程序编译器,步骤如下:键入命令:mex -setup;选择c/c++编译器;选择c/c++编译器版本;确认。