当前位置:文档之家› 在MATLAB环境下访问外部函数的共享库文件

在MATLAB环境下访问外部函数的共享库文件

在MATLAB环境下访问外部函数的共享库文件
在MATLAB环境下访问外部函数的共享库文件

在MA TLAB环境下访问外部函数的共享库文件,必须首先把该库文件加载到内存中。一旦加载成功,就能直接在MA TLAB中直接请求关于函数的任何信息。而当不再需要该库时,就应当及时把库文件从内存中卸载以节省内存开销。

加载库

语法:loadlibrary(…shrlib?,?hfile?)

其中shrlib为加载的动态链接库文件名(filename.dll),hfile为头文件名,它包含函数原型。例如,当加载包含MA TLAB中mx程序的libmx库时,可以使用下列语句。

hfile=[matlabroot?\extern\include\matrix.h?];

loadlibray(…libmx?, hfile)

卸载库

语法:unloadlibrary libmx

使用两个函数可以获取加载库的信息:

libfunctions(…libname?) or libfunctions libname

libfunctionsview(…libname?) or libfunctionsview libname

这两个函数的不同之处在于显示结果的方式不同,后者是以图形的方式显示在新的窗口中。而前者返回库libmx中有哪些可用的函数。请看示例:

libfunctions libmx

Methods for class lib.libmx:

mxAddField mxGetFieldNumber mxIsLogicalScalarTrue

mxArrayToString mxGetImagData mxIsNaN

mxCalcSingleSubscript mxGetInf mxIsNumeric

mxCalloc mxGetIr mxIsObject

mxClearScalarDoubleFlag mxGetJc mxIsOpaque

mxCreateCellArray mxGetLogicals mxIsScalarDoubleFlagSet

如果加上命令开头-full,则可以显示函数返回值的细节。

libfunctions libmx -full

Methods for class lib.libmx:

[mxClassID, MA TLAB array] mxGetClassID(MA TLAB array)

[lib.pointer, MA TLAB array] mxGetData(MA TLAB array)

[MA TLAB array, voidPtr] mxSetData(MA TLAB array, voidPtr)

[lib.pointer, MA TLAB array] mxGetPr(MA TLAB array)

[MA TLAB array, doublePtr] mxSetPr(MA TLAB array, doublePtr)

uint8 mxIsFinite(double)

uint8 mxIsInf(double)

值得注意的是,这两个函数返回值的类型均是MA TLAB的数据类型,虽然函数是利用C语言编写的。调用库函数

一旦库函数被加载到了内存空间,只要指定库名、函数名和变量就可以使用calllib函数调用库中的任何函数了。语法格式:

calllib(…libname?,?funcname?,arg1,…,argn)

下列语句显示如何操作:

hfile=['C:\MA TLAB7\extern\include\matrix.h'];

loadlibrary(…libmx?,hfile);

y=rand(4,7,2); %produce a 3D array, there are 56 elements in it

calllib(…libmx?,?mxGetNumberOfElements?,y)

ans=

56

Calllib(…libmx?,?mxGetClassID?,y)

ans=

mxDouble_CLASS

传递变量

当调用外部库里的函数时,该为函数提供哪种类型的变量呢?MA TLAB的extern\examples\shrlib\shrlibsample库里对每一种特殊的变量类型都作出了说明。但我们首先必须把该库文件的路径添加到MA TLAB的搜索路径中来,或者使该库文件所在的目录成为当前目录,两种做法的命令如下。

addpath(…C:\MA TLAB7\extern\examples\shrlib?)

cd(…C:\MA TLAB7\extern\examples\shrlib?)

下面的例子就是加载该库并显示了其中的一些函数。

loadlibrary shrlibsample shrlibsample.h

libfunctions shrlibsample –full

执行上述两行后,返回:

Functions in library shrlibsample:

[double, doublePtr] addDoubleRef(double, doublePtr, double)

double addMixedTypes(int16, int32, double)

[double, c_structPtr] addStructByRef(c_structPtr)

double addStructFields(c_struct)

c_structPtrPtr allocateStruct(c_structPtrPtr)

voidPtr deallocateStruct(voidPtr)

doublePtr multDoubleArray(doublePtr, int32)

[lib.pointer, doublePtr] multDoubleRef(doublePtr)

int16Ptr multiplyShort(int16Ptr, int32)

string readEnum(Enum1)

[string, string] stringToUpper(string)

这里所有的函数都是用C语言编写的。

一些通用的规则

在函数的输入输出变量问题上,以下几点应注意:

1.许多变量类型,象int32、double与C语言的数据类型非常相象。这些变量只需要传递MA TLAB型的数据就可以了。

2.而有些C语言的变量类型,象**double、还有预定义型与标准MA TLAB数据类型是完全不同的。这种情况下,有两种选择,要么给外部函数的入参传递标准的MA TLAB数据类型,让MA TLAB程序自动转化,要么先使用MA TLAB提供的转化函数,如libstruct、libpointer自己转化。关于转化,可以参考Data Conversion。

3.C语言通常可以按形参传递变量,但MA TLAB不支持这种做法,不过可以创造MA TLABPtr或PtrPtr型的变量,去兼容C语言的形参。

4.C语言通常还可以通过形参来返回输入变量的值,而MA TLAB需要额外的变量来获得返回值。

传递变量的通用规则

1.库函数传递形参时,标量不必非得声明。

2.如果库函数使用单下标来引用二维矩阵元素时,请记住,C语言是逐行处理矩阵元素,而MA TLAB是按列优先处理的。因此迎合C语言的习惯,可以在给MA TLAB函数传递变量之前把矩阵进行转置,从函数返回后再转置回来就行了。

3.由上可知,当传递的矩阵超过二维时,MA TLAB会改变矩阵的行列结构,为了确保矩阵的结构不被破坏,可以事先记录矩阵的结构,在调用结束后利用reshape函数还原即可。例如:

vs=size(vin); %suppose the dimention of vector vin is 2-by-5-by2

vout=calllib(…shrlibsample?,?multDoubleArray?,vin,20); %dimention have been altered

ans=

2 10

vout=reshape(vout,vs); %Restore the array to 2-by-5-by-2

size(vout)

ans=

2 5 2

4.当支持可选参数时,可用一空矩阵来传递一个NULL型参数。这是在变量为Ptr或PtrPtr型时唯一的选择。

传参

外部库的许多函数是传递形参的,为了能与这些函数交互,MA TLAB通常传递一个叫“指针对象”的变量,不过别把它与传参混同了。

数据转化

在多数情况下,传递给外部库函数或从外部库函数返回的数据类型自动被MA TLAB转化,然而,或许你偶尔也希望有些时侯能手动转化:

1.当需要传递相同的数据给一系列库函数时,可能手动转化要比让MA TLAB自动转化更为明智,更能节省时间。

2.当传递大结构的数据时,手动转化数据使之匹配C结构而不是直接采用通用的MA TLAB型数据的做法,比直接使用libstruct函数把C结构型的数据转换成MA TLAB型数据更能节省内存。

3.当外部函数使用超过一层引用(例如,指向指针的指针变量double **)时,用libpointer函数构造一个参数,比直接让MA TLAB自动转化数据要好。

原始类型

共享库接口支持所有标准C数据类型。下表显示了C与MA TLAB等价的数据类型。

MA TLAB可以自动把转化数据为外部库函数所需要的任何原型数据,这就意味着可以传递一个双精度型数据给一个8位整数型变量。下述C函数接受短整型、整型和双精度型数据:

double addMixedTypes(short x, int y, double z)

{

return (x+y+z);

}

你可以极其简单地在MA TLAB中只传递给该函数以双精度变量,MA TLAB自动判断每个变量接受何种类型的变量,并作近似转化。

calllib (…shrlibsample?,?addMixedTypes?, 127, 33000, pi)

ans=

3.3130e+004

转化参数

当外部函数原型定义一个形参时,MA TLAB能自动地把一个按值传递的变量转化为形参。因此,当给一个双精度指针变量赋一双精度变量时,MA TLAB会自动地把该双精度变量转化为双精度形参。

addDoubleRef是一个接受双精度指针型形参的函数:

double addDoubleRef( double x, bouble *y, double z)

{

return (x+ *y +z);

}

用三个双精度变量调用该函数,MA TLAB自动处理数据转化:

calllib (…shrlibsample?, …addDoubleRef?, 1.78, 5.42, 13.3)

ans=

20.5000

字符串

当变量需要字符型指针数据时,你可以传递一个MA TLAB型字符串(矩阵)。下述C函数接受一个字符指针型数据:

char * stringToUpper (char *input)

{

char *p=input;

if (p!=NULL)

while (*p!=0)

*p++=toupper(*p);

return input;

}

libfunctions显示,你可以用一个MA TLAB字符串作为输入。

libfunctions shrlibsample –full

[string, string] stringToUpper (string )

定义一个MA TLAB字符矩阵str,把它传递给变量。

str=?This was a Mixed Case string?; %MA TLAB中字符串以“?”号对表示

calllib(… shrlibsample?, …stringToUpper?, str)

ans=

THIS W AS A MIXED STRING

注意:虽然MA TLAB传递给变量的很象字符型的形参,但它并不真正的参数类型。因为它并不包括MA TLAB字符矩阵str的地址。因此当函数执行完毕时,字符串的值并未改变。

枚举型

如果变量被定义为C中的枚举型,你可以传递枚举型或一个与枚举值等价的整数。

shrlibsample库中的readEnum函数返回与传入变量相应的枚举型。下述为Enum1的定义和C语言函数readEnum:

enum Enum1 {en1=1,en2, en4=4} TEnum1;

char *readEnum(TEnum1 val)

{

switch (val) {

case 1:return “you chose en1”;

case 2:return “you chose en2”;

case 4:return “you chose en4”;

default: return “enum not defined”;

}

}

MA TLAB,你可以用一个枚举型字符或等价的整数来表示枚举型数据。上述中定义的枚举型数据TEnum1中,en4与4等价:

calllib (…shrlibsample?, …readEnum?, …en4?)

ans=

you chose en4

calllib (…shrlibsampel?, …readEnum?, 4)

ans=

you chose en4

结构体型

当库函数接受结构体型变量时,你需要给它传递与在结构体定义时拥有相同域名的结构体变量。为了确定结构体变量的域和类型,你可以:

1.查询库文档

2.在加载到MA TLAB的库的头文件中寻找结构体的定义。

你也可以在MA TLAB中采用下述步骤来确定外部函数定义过的结构体的域名。

1.利用libfunctionsview函数来显示正在使用的库函数的信息,它包含了每一个函数所做用的结构体数据的名字。当键入libfunctionsview shrlibsample命令时,MA TLAB就会在新窗口中显示库函数的信息。

如:double addStructFields (c_struct)

2.利用libstruct函数获取结构体定义模型。

如s=libstruct( …c_struct?);

3.继而利用get函数返回结构体数据的域名。

如get(s)

p1:0

p2:0

p3:0

4.利用calllib函数初始化所需要传递给库函数的域值。

如s.p1=478; s.p2=-299; s.p3=1000;

calllib (…shrlibsample?, …addStructFields?, s)

当你利用calllib函数创建或初始化结构体数据时,不必去匹配结构体的数据域,MA TLAB会自动转化数据类型。

指定结构体域名

下面是在为外部库函数传递结构体数据时一般的做法:

1.结构体数据可能只包含了定义中很少的一部分域,MA TLAB会把其余的域初始化为0.

2.你所使用的任何结构体的域名须与定义中的域名一致。

3.结构体中不能包含库函数中未定义过的域名。

传递MATLAB结构体

与其他的数据类型一样,当外部函数接受结构体变量数据类型时,就可以传递一个MA TLAB型结构体数据给它。结构体的域名必须与库函数定义中的域名一致,而数值类型则可以不同,由MA TLAB自动转换完成。

如shrlibsample共享库中定义了这样的C结构和函数:

struct c_struct {

double p1;

short p2;

long p3;

};

double addStructField (struct c_struct st )

{

double t=st.p1 +st.p2 +st.p3;

return t;

}

下面的代码完成向addStructField函数传递一个结构体变量sm,包含三个双精度数据,即传递的数值类型与C定义中的不一样,但域外必须相同,否则传递不进去:

sm.p1=476; sm.p2=-299; sm.p3=1000;

calllib(…shrlibsample?, …addStructFields?, sm )

ans=

1177

传递结构体对象

当为外部函数传递结构体变量时,MA TLAB为了确保传递成功,要求域名必须与库函数定义中的一致,而对数值类型则不加强求,由MA TLAB自动转换成库函数中对应域的数值类型,并且把空域的值均初始化为零。当结构体数据较小时,这种做法很有效。然而,当重复传递一个或多个大的结构体数据时,手动转化是更明智的选择,不仅可以节省时间,还可以节省内存和空间。

使用libstruct函数

s=libstruct (…structtype?, mlstruct)

返回值s叫做libstruct对象。虽然它实际上是MA TLAB的一个对象,但它更象是一个结构体数据。这个新的所谓“结构体”的域名得自于外部库函数中结构体的域名。

例如,把MA TLAB结构体sm转换成libstruct对象sc:

sm.p1=476; sm.p2=-299; sm.p3=1000;

sc=libstruct (…c_struct?, sm);

sm的原始结构中域值为三个双精度型,而libstruct函数转换后的sc对象的域名则与c_struct结构体一致,分别为double、short和long型。

创建空libstruct对象

s=libstruct (…structtype?)这种调用格式可以生成域名完整,域值为0的空libstruct对象。

使用结构体作为对象

libstruct转换后的结构体实际上是lib.c_struct类中的一个对象实例,这一点可以通过whos命令的输出来验

证:

whos sc

Name Size Bytes Class

sc 1-by-1 lib.c_struct

Grand total is 1 element using 0 bytes

域已经被当成了lib.c_struct类的属性来处理了。你可以利用基于对象的函数set和get来读写:sc=libstruct (… c_struct? );

set (sc, …p1?,100, …p2?, 150, …p3?, 200 ); %对象读写须用get、set

get(sc)

p1:100

p2:150

p3:200

但是你也可以象处理结构体数据那样简单地对sc进行读写:

sc.p1=23; %而结构体的域可以直接赋值

sc.p1

ans=

23

创建形参

你可以为外部函数按值传递大多数的变量,即使函数原型要求形参传递,然而有时你会发现这与直接给C 传递形参一样揍效。

使用库指针函数

用函数libpointer构造一个形参的语法如下:

p=libpointer(…type?, …value?)

例如要创建一个指向int16数据类型的指针pv,就得先指定指针的类型,并以Ptr作后缀:

v=int16(485);

pv=libpointer(…int16Prt?, v);

返回值pv实际就是MA TLAB中lib.pointer类的一个实例。lib.pointer有属性值和数据类型。你可以用get或set函数来读或写这些属性。

get(pv)

value:485

DataType:?int16Ptr?

lib.pointer类还有另外两种方法setdatatype和reshape。

methods(pv)

methods for class lib.pointer:setdatatype reshape

为原始类型创建形参

如何去创建和传递指针给双精度型,又如何输出数据这里有一个简单的例子可以说明。函数multDoubleRef 接受一个双精度形参同时返回双精度型。

double *multDoubleRef(double *x)

{

*x *=5;

return x;

}

输入数据x来创建一个形参xp:

x=15;

xp=libpointer(…doublePtr?,x);

get(xp)

value:15

Datatype:?doublePtr?

现在可以调用函数来检验结果:

calllib(…shrlibsample?, …multDoubleRef?, xp);

get(xp, …value?)

ans=

75

注意:xp虽然是作为x的形参而创建的,但它并非真的象C语言的指针,因为xp中并不包含x的地址,因此,当函数执行时,函数修改xp的属性值,但它并不修改x的值。

获得函数的返回值

在上述最后一例子中,从MA TLAB调用的函数返回值可以通过检查修改了的输入形参来获得,但这个函数也可以通过输出变量来获得。

这个函数的MA TLAB原型表明(利用libfunctions shrlibsample –full查看原型),它返回了两个输出变量,一为lib.pointer类的对象,另一为dlublePtr输入变量的属性值:

libfunctions shrlibsample –full

[lib.pointer, doublePtr] multDoubleRef (doublePtr)

再次运行这个例程,但这次检查返回值

x=15;

xp=libpointer(… doublePtr?, x);

[xobj, xval]=calllib(…shrlibsample?, …multDoubleRef?, xp)

xobj=

lib.pointer

xval=

75

创建结构体形参

与创建原始类型的形参相比,创建结构体的形参并非难事。下述函数只接受C语言形式的结构体形参,它的返回值是所有结构体域值之和,同时也修改了输入参量。

double addStructByRef( struct c_struct *st )

{

double t=st->p1+st->p2+st->p3;

st->p1=5.5;

st->p2=1234;

st->p3=12345678;

return t;

}

(1)传递结构体本身

虽然这个函数期望获得一个结构体的输入参量。下列给形参传递了一个MA TLAB的结构体sm,返回值是正确的,因为sm不是按址传递,所以sm的域值并未被函数修改。

sm.p1=476; sm.p2=-299; sm.p3=1000;

x=calllib(…shrlibsample?, …addStructByRef?, sm)

x=

1177

(2)传递结构体形参

sp=libpointer( …c_struct?, sm);

calllib(…shrlibsample?, …addStructByRef?, sp )

ans=

1177

get(sp,?value?)

ans=

p1:5.5000

p2:1234

p3:12345678

形参指针

当变量超过一层引用(例如,uint16 **)就是这里提到的形参指针。在MA TLAB中,这类变量类型都加以后缀PtrPtr。

当调用一个接受形参指针的函数时,你可以使用一个形参变量代替,MA TLAB将会把该形参变量转换为形参指针。例如,外部函数allocateStruct接受一个c_structPtrPtr变量:

libfunctions shrlibsample –full

c_structPtrPtr allocateStruct(c_structPrtPtr)

C语言编写的该函数:

void allocateStruct (struct c_struct **val)

{

*val=(struct c_struct *) malloc(sizeof(sturct c_struct));

(*val)->p1=12.4;

(*val)->p2=222;

(*val)->p3=333333;

}

该函数原型需要一个c_structPtrPtr型数据,但你可以只传递一个c_structPtr型数据,让MA TLAB完成第二层引用。下例创建了一个空的结构体形参传递给allocateStruct函数:

sp=libpointer (…c_structPtr?);

calllib( …shrlibsample?, …allocateStruct?, sp)

get(sp)

ans=

value:[1-by-1 struct]

DataType:?c_structPtr?

get(sp, …value?)

ans=

p1:12.4000

p2:222

p3:333333

完成之后,记得从内存中删除该对象以释放空间:

calllib( …shrlibsample?, …deallocateStruct?, sp)

MATLAB外部接口

你可以在MA TLAB中调用自己编写的C函数,MA TLAB会让你感觉就象调用MA TLAB自身内建函数一样轻松。

MA TLAB中可以调用的C函数就是MEX文件,MEX文件是MA TLAB解释器能自动加载和执行的子程序。MEX文件有几个应用:

1.不必为调用大型C程序而把它改写成MA TLAB默认的M文件。

2.解决计算的一些瓶颈问题,在MA TLAB中做一些循环计算时效率不如C语言。

MEX文件不适合所有的应用,MA TLAB是一个高效率的系统,与C和Fortan编译相比,它能有效降低耗时。一般多数编程MA TLAB均能解决,因此除非你的应用程序确实需要MEX文件,否则不必使用MEX 文件。

使用MEX文件

MEX文件是C或Fortran代码的子程序,它的运行就象M文件和内建函数。MA TLAB识别MEX文件是根据不同操作平台文件的扩展名,而M文件的扩展名(.m)与操作平台无关。不如操作系统下MEX文件的扩展名如下:

你可以准确地调用MEX文件就如同调用M文件。例如,磁盘的datafun toolbox目录上有一conv2.mex的MEX文件,它能实现一个二维矩阵的转换,而conv2.m文件只包含帮助文档。如果从MA TLAB内部调用函数conv2,解释器将在MA TLAB的搜索路径(默认的路径有多条)上查找,直至找到第一次出现的conv2的文件和相应的扩展名,然后加载并执行。如果在同一目录上有相同文件名的MEX文件(.dll---以windows 平台为例)和M文件(.m),则MEX文件优先,而帮助文档仍然从.m文件中读取。

前缀mx与mex的差别

API的程序以mx为前缀,允许你创建、访问、操作和销毁mxArrays,前缀mex的程序在MA TLAB 的后台工作。例如mexEvalString子程序就工作在MA TLAB的工作空间对字符串运算。

为了操作MA TLAB的矩阵,矩阵访问和创建库提供一套子程序,这些子程序以mx前缀开头,它们的完整文档于在线参考网页上能找到。例如,mxGetPi函数从矩阵内取回虚数的指针。

虽然访问、创建矩阵的子程序允许操纵MA TLAB矩阵,但有两种情况例外,IEEE程序和内存管理程序。例如,mxGetNaN返回一双精度数据,而非mxArray型。

MATLAB数据

在你开始编制MEX文件之前,必须先了解MA TLAB支持的数据类型。

1.矩阵

MA TLAB只用唯一的对象类型数据--MA TLAB矩阵。所有的MA TLAB变量,包括标量、矢量、矩阵、字符串、元胞矩阵、结构体及对象,它们都是存储在MA TLAB矩阵里。对应C语言中,MA TLAB矩阵应声明为mxArray型,mxArray型数据中包括了矩阵的类型、维数、相关数据等。如果是数值变量,它还包括该变量是实数还是复数的信息,如果是稀疏矩阵,它还记录下标和非零的元素个数,如果是结构体或对象,它还包括域的个数和域名。

2.数据存储

MA TLAB中的数据是按列存储,与Fortran相同,之所以采用这种习惯,是缘于MA TLAB最初是用Fortran语言编写的。

例如矩阵a=[…house?; …floor?; …porch?]

a=

house

floor

porch

size(a)

ans=

3 5

数据存储为

3.复数

复数在MA TLAB中是最普遍的双精度类型,一个m-by-n的矩阵它的实部和虚部分别存放在m-by-n 大小的矩阵中,其中m表示矩阵的行数,n表示矩阵的列数。这两个矩阵独立时由两个指向实数和虚数的指针pr、pi指着,如果是实数(如单精度的浮点数,无符号和有符号的8、16、32位整数),则虚部的指针为NULL。

4.逻辑矩阵

5.MA TLAB字符串

MA TLAB字符串是字符类型,它的存储方式与16位整数一样,只是没有虚部分量。与C不同的是,MA TLAB字符串不以NULL结束。

6.元胞矩阵

7.稀疏矩阵

稀疏矩阵的存储习惯与满置矩阵不同,除了指向实部和虚部的指针pr、pi外,还有三个参数nzmax、ir和jc:

nzmax 为一整数,它包括ir、pr的长度,如果有虚部的话,也包括pi的长度,它表示稀疏矩阵中不为零的元素的最大的个数。

ir 是一长度为nzmax的整数矩阵,它包含了pr和pi指针中相应元素的行下标。

jc是一长度为N+1的整数矩阵,它包含了元素列的信息。j的变化范围是0=

(完整版)MATLAB常用函数大全

一、MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数(Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数或 log2(x):以2为底的对数 log10(x):以10为底的对数 二、MATLAB常用的三角函数 sin(x):正弦函数 cos(x):余弦函数

tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 三、适用於向量的常用函数有: min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值 mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数 std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差 sort(x): 对向量x的元素进行排序(Sorting)length(x): 向量x的元素个数 norm(x): 向量x的欧氏(Euclidean)长度sum(x): 向量x的元素总和 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 四、MATLAB的永久常数

MATLAB常用函数

MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。 开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。 Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱 Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱

matlab 常用函数汇总

matlab 常用函数汇总 编程2008-07-10 21:45:20 阅读46 评论0 字号:大中小订阅matlab常用函数 图形注释 Title 图形标题 Xlabel X轴标记 Ylabel Y轴标记 Text 文本注释 Gtext 用鼠标放置文本 Grid 网格线 MATLAB编程语言 Function 增加新的函数 Eval 执行由MA TLAB表达式构成的字串 Feval 执行由字串指定的函数 Global 定义全局变量 程序控制流 If 条件执行语句 Else 与if命令配合使用 Elseif 与if命令配合使用 End For,while和if语句的结束 For 重复执行指定次数(循环) While 重复执行不定次数(循环) Break 终止循环的执行 Return 返回引用的函数 Error 显示信息并终止函数的执行 交互输入 Input 提示用户输入 Keyboard 像底稿文件一样使用键盘输入 Menu 产生由用户输入选择的菜单 Pause 等待用户响应 Uimenu 建立用户界面菜单 Uicontrol 建立用户界面控制 一般字符串函数 Strings MATLAB中有关字符串函数的说明 Abs 变字符串为数值 Setstr 变数值为字符串 Isstr 当变量为字符串时其值为真 Blanks 空串 Deblank 删除尾部的空串 Str2mat 从各个字符串中形成文本矩阵 Eval 执行由MA TLAB表达式组成的串 字符串比较 Strcmp , , , 比较字符串 Findstr 在一字符串中查找另一个子串

Upper 变字符串为大写 Lower 变字符串为小写 Isletter 当变量为字母时,其值为真 Isspace 当变量为空白字符时,其值为真 字符串与数值之间变换 Num2str 变数值为字符串 Int2str 变整数为字符串 Str2num 变字符串为数值 Sprintf 变数值为格式控制下的字符串 Sscanf 变字符串为格式控制下的数值 十进制与十六进制数之间变换 Hex2num 变十六进制为IEEE标准下的浮点数Hex2dec 变十六制数为十进制数 Dec2hex 变十进制数为十六进制数 建模 Append 追加系统动态特性 Augstate 变量状态作为输出 Blkbuild 从方框图中构造状态空间系统Cloop 系统的闭环 Connect 方框图建模 Conv 两个多项式的卷积 Destim 从增益矩阵中形成离散状态估计器Dreg 从增益矩阵中形成离散控制器和估计器Drmodel 产生随机离散模型 Estim 从增益矩阵中形成连续状态估计器Feedback 反馈系统连接 Ord2 产生二阶系统的A、B、C、D Pade 时延的Pade近似 Parallel 并行系统连接 Reg 从增益矩阵中形成连续控制器和估计器Rmodel 产生随机连续模型 Series 串行系统连接 Ssdelete 从模型中删除输入、输出或状态ssselect 从大系统中选择子系统 模型变换 C2d 变连续系统为离散系统 C2dm 利用指定方法变连续为离散系统 C2dt 带一延时变连续为离散系统 D2c 变离散为连续系统 D2cm 利用指定方法变离散为连续系统 Poly 变根值表示为多项式表示 Residue 部分分式展开 Ss2tf 变状态空间表示为传递函数表示 Ss2zp 变状态空间表示为零极点表示

matlab 常用函数(1)

A axis() axis([xmin xmax ymin ymax]) sets the limits for the x- and y-axis of the current axes. axis([xmin xmax ymin ymax zmin zmax cmin cmax]) sets the x-, y-, and z-axis limits and the color scaling limits (see caxis) of the current axes. axis equal sets the aspect ratio so that the data units are the same in every direction. The aspect ratio of the x-, y-, and z-axis is adjusted automatically according to the range of data units in the x, y, and z directions C clf Clear current figure window G grid off/on The grid function turns the current axes' grid lines on and off. H hold on/off ●The hold function determines whether new graphics objects are added to the graph or replace objects in the graph. ●hold on retains the current plot and certain axes properties so that subsequent graphing commands add to the existing graph. ●hold off resets axes properties to their defaults before drawing new plots. hold off is the default

matlab最常用函数

1、 基本形式 >> y=[0 0.58 0.70 0.95 0.83 0.25]; >> plot(y) 生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。 >> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y) 生成的图形是上30个点连成的光滑的正弦曲线。 多重线 在同一个画面上可以画许多条曲线,只需多给出几个数组,例如 >> x=0:pi/15:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 则可以画出多重线。另一种画法是利用hold命令。在已经画好的图形上,若设置hold on,MATLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如: >> x=linspace(0,2*pi,30); y=sin(x); plot(x,y) >> hold on >> z=cos(x); plot(x,z) >> hold off 线型和颜色 MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下: 线型线方式:- 实线:点线-. 虚点线- - 波折线。 线型点方式: . 圆点+加号* 星号x x形o 小圆

颜色:y黄;r红;g绿;b蓝;w白;k黑;m紫;c青. 以下面的例子说明用法: >> x=0:pi/15:2*pi; >> y1=sin(x); y2=cos(x); >> plot(x,y1,’b:+’,x,y2,’g-.*’) 网格和标记 在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。 >> x=linspace(0,2*pi,30); y=sin(x); z=cos(x); >> plot(x,y,x,z) >> grid >> xlabel(‘Independent Variable X’) >> ylabel(‘Dependent Variables Y and Z’) >> title(‘Sine and Cosine Curves’) 也可以在图形的任何位置加上一个字符串,如用: >> text(2.5,0.7,’sinx’) 表示在坐标x=2.5, y=0.7处加上字符串sinx。更方便的是用鼠标来确定字符串的位置,方法是输入命令: >> gtext(‘sinx’) 在图形窗口十字线的交点是字符串的位置,用鼠标点一下就可以将字符串放在那里。 坐标系的控制 在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有: axis([xmin xmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值 axis equal 或axis(‘equal’) x轴和y轴的单位长度相同 axis square 或axis(‘square’) 图框呈方形

matlab内部函数大全

MATLAB函数大全 Matlab有没有求矩阵行数/列数/维数的函数? ndims(A)返回A的维数 size(A)返回A各个维的最大元素个数 length(A)返回max(size(A)) [m,n]=size(A)如果A是二维数组,返回行数和列数nnz(A)返回A中非0元素的个数 MATLAB的取整函数:fix(x), floor(x) :,ceil(x) , round(x) (1)fix(x) : 截尾取整. >> fix( [3.12 -3.12]) ans = 3 -3 (2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12]) ans = 3 -4 (3)ceil(x) : 大于x 的最小整数 >> ceil( [3.12 -3.12]) ans = 4 -3 (4)四舍五入取整 >> round(3.12 -3.12) ans = >> round([3.12 -3.12]) ans =

3 -3 >> 如何用matlab生成随机数函数 rand(1) rand(n):生成0到1之间的n阶随机数方阵rand(m,n):生成0到1之间的m×n的随机数矩阵(现成的函数) 另外: Matlab随机数生成函数 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布的随机数生成器 frnd f分布的随机数生成器 gamrnd 伽玛分布的随机数生成器 geornd 几何分布的随机数生成器 hygernd 超几何分布的随机数生成器 lognrnd 对数正态分布的随机数生成器 nbinrnd 负二项分布的随机数生成器 ncfrnd 非中心f分布的随机数生成器 nctrnd 非中心t分布的随机数生成器 ncx2rnd 非中心卡方分布的随机数生成器 normrnd 正态(高斯)分布的随机数生成器 poissrnd 泊松分布的随机数生成器 raylrnd 瑞利分布的随机数生成器 trnd 学生氏t分布的随机数生成器 unidrnd 离散均匀分布的随机数生成器 unifrnd 连续均匀分布的随机数生成器 weibrnd 威布尔分布的随机数生成器 一、MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数

MATLAB常用函数

数字信号处理与MATLAB 实现 1. n1=[ns:nf]; x1=[zeros(1,n0-ns),1,zeros (1,nf-n0)]; %单位抽样序列的产生 2. subplot(2,2,4) 画2行2列的第4个图 3. stem(n,x) %输出离散序列,(plot 连续) 4. 编写子程序可调用 4.1 单位抽样序列)(0n n -δ生成函数impseq.m [x,m]=impseq(n0,ns,nf); %序列的起点为ns ,终点为nf ,在n=n0点处生成一个单位脉冲 n=[-5:5];x1=3*impseq(2,-5,5)-impseq(-4,-5,5) x1 = 0 -1 0 0 0 0 0 3 0 0 0 n=[-5:5];x1=3*impseq(2,-4,5)-impseq(-4,-5,4) %起点到终点长度要一致 x1 = 0 -1 0 0 0 0 3 0 0 0 4.2 单位阶跃序列)(0n n u -生成函数stepseq.m [x,n]=stepseq(no,ns,nf) %序列的起点为ns ,终点为nf ,在n=n0点处生成一个单位阶跃 4.3 两个信号相加的生成函数sigadd.m [y,n]=sigadd(x1,n1,x2,n2) 4.4 两个信号相乘的生成函数sigmult.m [y,n]=sigmult(x1,n1,x2,n2) 4.5 序列移位y(n)=x(n-n0)的生成函数sigshift.m [y,n]=sigshift(x,m,n0) 4.6 序列翻褶y(n)=x(-n)的生成函数sigfold.m [y,n]=sigfold(x,n) 4.7 evenodd.m 函数可以将任一给定的序列x(n)分解为xe(n)和xo(n)两部分 [xe,xo,m]=evenodd(x,n) 4.8 序列从负值开始的卷积conv_m, conv 默认从0开始 function [y,ny]=conv_m(x,nx,h,nh) 有{x(n):nx1≤n ≤nx2},{h(n):nh1≤n ≤nh2}, 卷积结果序列为 {y(n):nx1+nh1≤n ≤nx2+nh2} 例. 设1132)(-++=z z z X ,1225342)(-+++=z z z z X ,求)()()(21z X z X z Y += 程序: x1=[1,2,3];n1=-1:1; x2=[2,4,3,5];n2=-2:1; [y,n]=conv_m(x1,n1,x2,n2)

MatLab常用函数大全

1、求组合数 C,则输入: 求k n nchoosek(n,k) 例:nchoosek(4,2) = 6. 2、求阶乘 求n!.则输入: Factorial(n). 例:factorial(5) = 120. 3、求全排列 perms(x). 例:求x = [1,2,3]; Perms(x),输出结果为: ans = 3 2 1 3 1 2 2 3 1 2 1 3 1 2 3 1 3 2 4、求指数 求a^b:Power(a,b) ; 例:求2^3 ; Ans = pow(2,3) ; 5、求行列式 求矩阵A的行列式:det(A); 例:A=[1 2;3 4] ; 则det(A) = -2 ; 6、求矩阵的转置 求矩阵A的转置矩阵:A’ 转置符号为单引号. 7、求向量的指数 求向量p=[1 2 3 4]'的三次方:p.^3 例: p=[1 2 3 4]' A=[p,p.^2,p.^3,p.^4] 结果为:

注意:在p 与符号”^”之间的”.”不可少. 8、求自然对数 求ln(x):Log(x) 例:log(2) = 0.6931 9、求矩阵的逆矩阵 求矩阵A 的逆矩阵:inv(A) 例:a= [1 2;3 4]; 则 10、多项式的乘法运算 函数conv(p1,p2)用于求多项式p1和p2的乘积。这里,p1、p2是两个多项式系数向量。 例2-2 求多项式43810x x +-和223x x -+的乘积。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; c=conv(p1,p2) 11、多项式除法 函数[q ,r]=deconv(p1,p2)用于多项式p1和p2作除法运算,其中q 返回多项式p1除以p2的商式,r 返回p1除以p2的余式。这里,q 和r 仍是多项式系数向量。 例2-3 求多项式43810x x +-除以多项式223x x -+的结果。 命令如下: p1=[1,8,0,0,-10]; p2=[2,-1,3]; [q,r]=deconv(p1,p2) 12、求一个向量的最大值 求一个向量x 的最大值的函数有两种调用格式,分别是:

MATLAB常用函数

1概述安装介绍(略)。 2 矩阵和数组 2.1 创建特殊矩阵函数 Compan 伴随矩阵Diag 对角矩阵Eye 单位矩阵Gallery 测试矩阵Hadamard hadamard矩阵Hilb hilb矩阵Invhilb invhilb矩阵 Magic魔方矩阵Ones 全一矩阵Rand均匀分布随机矩阵 Randn 正态分布随机矩阵Rosser经典对称特征测试矩阵 Wilkinson wilkinson特征值测试矩阵Zeros 全零矩阵 注:diag(A,n)以向量A为主对角线为基准偏移n个位置。 2.2 矩阵连接 水平c=[a,b]或者c=[a b] 垂直c=[a;b] 连接函数(1)Cat 指定方向;(2)Cat(1,a,b)水平;(3)Cat(2,a,b)垂直;(4)Horzcat 水平方向;(5)Vertcat 垂直方向(6)Repmat 对现有矩阵复制粘贴(7)Blkdiag 以对角阵方式重组。 2.3 改变矩阵形状 Reshape 制定行列重排;Rot90 逆时针90;Filplr 垂直方向为轴旋转180;Flipud 水平方向为轴旋转180;Flipdim 指定方向为轴翻转矩阵 2.4 向量生成函数 Linspace(a,b)首尾为a,b的100个数;Linspace(a,b,n) Logspace(a,b)以10为底;Logspace(a,b,n);Logspace(a,pi) 2.5 矩阵信息的获取 Isempty 判断为空;Isscalar 判断为标量;Isvector 判断向量;Issparse 判断稀疏矩阵;Isa 判断指定数据类型;Iscell 判断元胞数组类型;Iscellstr 元胞字符串数组类型;Isfloat 判断浮点数;Isinteger 判断整形类型;Islogical 判断逻辑类型Isnumeric 判断数值类型;Isreal 判断实数类型;Isstruct 判断结构体类型;Length 最长维长度;Ndims 维数;Numel 元素个数;Size 指定维长度 3 数据类型

matlab function非常全的 matlab 函数

一、常用对象操作:除了一般windows窗口的常用功能键外。 1、!dir 可以查看当前工作目录的文件。!dir&可以在dos状态下查看。 2、who 可以查看当前工作空间变量名,whos 可以查看变量名细节。 3、功能键: 功能键快捷键说明 方向上键Ctrl+P 返回前一行输入 方向下键Ctrl+N 返回下一行输入 方向左键Ctrl+B 光标向后移一个字符 方向右键Ctrl+F 光标向前移一个字符 Ctrl+方向右键Ctrl+R 光标向右移一个字符 Ctrl+方向左键Ctrl+L 光标向左移一个字符 home Ctrl+A 光标移到行首 End Ctrl+E 光标移到行尾 Esc Ctrl+U 清除一行 Del Ctrl+D 清除光标所在的字符 Backspace Ctrl+H 删除光标前一个字符 Ctrl+K 删除到行尾 Ctrl+C 中断正在执行的命令 4、clc可以命令窗口显示的内容,但并不清除工作空间。 二、函数及运算 1、运算符: +:加,-:减,*:乘,/:除,\:左除^:幂,‘:复数的共轭转置,():制定运算顺序。 2、常用函数表: sin( ) 正弦(变量为弧度) Cot( ) 余切(变量为弧度) sind( ) 正弦(变量为度数) Cotd( ) 余切(变量为度数) asin( ) 反正弦(返回弧度) acot( ) 反余切(返回弧度) Asind( ) 反正弦(返回度数) acotd( ) 反余切(返回度数) cos( ) 余弦(变量为弧度) exp( ) 指数 cosd( ) 余弦(变量为度数) log( ) 对数 acos( ) 余正弦(返回弧度) log10( ) 以10为底对数 acosd( ) 余正弦(返回度数) sqrt( ) 开方 tan( ) 正切(变量为弧度) realsqrt( ) 返回非负根 tand( ) 正切(变量为度数) abs( ) 取绝对值

Matlab常用工具箱及常用函数

Matlab常用工具箱 MATLAB包括拥有数百个内部函数的主包和三十几种工具包.工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包. Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱 Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱 常用函数Matlab内部常数[3] eps:浮点相对精度 exp:自然对数的底数e i或j:基本虚数单位 inf或Inf:无限大, 例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargout: 函数的输出引数个数 lasterr:存放最新的错误信息 lastwarn:存放最新的警告信息 MATLAB常用基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle)

MATLAB中常用的函数

[转]MATLAB 主要函数(一) (2008-05-11 17:09:43) 转载 标签: 分类:IT matlab 函数 杂谈 MATLAB主要函数指令表(按功能分类)原贴地址:https://www.doczj.com/doc/6d17927122.html,/casularm/archive/2007/04/20/1572638.aspx 1常用指令(General Purpose Commands) 1.1通用信息查询(General information) demo 演示程序 help 在线帮助指令 helpbrowser 超文本文档帮助信息 helpdesk 超文本文档帮助信息 helpwin 打开在线帮助窗 info MATLAB 和MathWorks 公司的信息 subscribe MATLAB 用户注册 ver MATLAB 和TOOLBOX 的版本信息 version MATLAB 版本 whatsnew 显示版本新特征 1.2工作空间管理(Managing the workspace) clear 从内存中清除变量和函数 exit 关闭MATLAB load 从磁盘中调入数据变量 pack 合并工作内存中的碎块 quit 退出MATLAB save 把内存变量存入磁盘 who 列出工作内存中的变量名

whos 列出工作内存中的变量细节 workspace 工作内存浏览器 1.3管理指令和函数(Managing commands and functions) edit 矩阵编辑器 edit 打开M 文件 inmem 查看内存中的P 码文件 mex 创建MEX 文件 open 打开文件 pcode 生成P 码文件 type 显示文件内容 what 列出当前目录上的M、MAT、MEX 文件 which 确定指定函数和文件的位置 1.4搜索路径的管理(Managing the seach patli) addpath 添加搜索路径 rmpath 从搜索路径中删除目录 path 控制MATLAB 的搜索路径 pathtool 修改搜索路径 1.5指令窗控制(Controlling the command window) beep 产生beep 声 echo 显示命令文件指令的切换开关 diary 储存MATLAB 指令窗操作内容 format 设置数据输出格式 more 命令窗口分页输出的控制开关 1.6操作系统指令(Operating system commands) cd 改变当前工作目录 computer 计算机类型 copyfile 文件拷贝 delete 删除文件 dir 列出的文件 dos 执行dos 指令并返还结果

Matlab中常用的函数集

sort (排序) xlsread ( exl文件导入) load (txt 文件,mat文件等导入) 附录Ⅰ工具箱函数汇总 Ⅰ.1 统计工具箱函数 表Ⅰ-1 概率密度函数 函数名对应分布的概率密度函数 betapdf 贝塔分布的概率密度函数 binopdf 二项分布的概率密度函数 chi2pdf 卡方分布的概率密度函数 exppdf 指数分布的概率密度函数 fpdf f分布的概率密度函数 gampdf 伽玛分布的概率密度函数 geopdf 几何分布的概率密度函数 hygepdf 超几何分布的概率密度函数normpdf 正态(高斯)分布的概率密度函数lognpdf 对数正态分布的概率密度函数nbinpdf 负二项分布的概率密度函数 ncfpdf 非中心f分布的概率密度函数nctpdf 非中心t分布的概率密度函数 ncx2pdf 非中心卡方分布的概率密度函数poisspdf 泊松分布的概率密度函数 raylpdf 雷利分布的概率密度函数 tpdf 学生氏t分布的概率密度函数unidpdf 离散均匀分布的概率密度函数unifpdf 连续均匀分布的概率密度函数weibpdf 威布尔分布的概率密度函数 表Ⅰ-2 累加分布函数 函数名对应分布的累加函数 betacdf 贝塔分布的累加函数 binocdf 二项分布的累加函数 chi2cdf 卡方分布的累加函数 expcdf 指数分布的累加函数 fcdf f分布的累加函数 gamcdf 伽玛分布的累加函数 geocdf 几何分布的累加函数 hygecdf 超几何分布的累加函数

logncdf 对数正态分布的累加函数 nbincdf 负二项分布的累加函数 ncfcdf 非中心f分布的累加函数 nctcdf 非中心t分布的累加函数 ncx2cdf 非中心卡方分布的累加函数 normcdf 正态(高斯)分布的累加函数 poisscdf 泊松分布的累加函数 raylcdf 雷利分布的累加函数 tcdf 学生氏t分布的累加函数 unidcdf 离散均匀分布的累加函数 unifcdf 连续均匀分布的累加函数 weibcdf 威布尔分布的累加函数 表Ⅰ-3 累加分布函数的逆函数 函数名对应分布的累加分布函数逆函数 betainv 贝塔分布的累加分布函数逆函数 binoinv 二项分布的累加分布函数逆函数 chi2inv 卡方分布的累加分布函数逆函数 expinv 指数分布的累加分布函数逆函数 finv f分布的累加分布函数逆函数 gaminv 伽玛分布的累加分布函数逆函数 geoinv 几何分布的累加分布函数逆函数hygeinv 超几何分布的累加分布函数逆函数logninv 对数正态分布的累加分布函数逆函数nbininv 负二项分布的累加分布函数逆函数ncfinv 非中心f分布的累加分布函数逆函数nctinv 非中心t分布的累加分布函数逆函数 ncx2inv 非中心卡方分布的累加分布函数逆函数icdf norminv 正态(高斯)分布的累加分布函数逆函数poissinv 泊松分布的累加分布函数逆函数 raylinv 雷利分布的累加分布函数逆函数 tinv 学生氏t分布的累加分布函数逆函数unidinv 离散均匀分布的累加分布函数逆函数unifinv 连续均匀分布的累加分布函数逆函数weibinv 威布尔分布的累加分布函数逆函数 表Ⅰ-4 随机数生成器函数

MATLAB常用工具箱及常用函数

常用工具箱 MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。 开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。 Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 computer vision system toolbox----计算机视觉工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱

Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 Wavele Toolbox——小波工具箱 DSP system toolbox-----DSP处理工具箱 常用函数 Matlab内部常数[2] eps:浮点相对精度 exp:自然对数的底数e i 或j:基本虚数单位 inf 或Inf:无限大,例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数

matlab常用函数

Matlab常用函数 Matlab的内部常数 Matlab概率密度函数

Matlab随机数据处理函数 moment 计算任意阶的中心矩 prctile 计算样本的百份位数 Matlab的常用内部数学函数

Matlab中的数学运算符 如何在matlab中调用maple (不用安装maple软件就可调用) 方法1: maple(’maplestatement’) 其中maplestatement 是完整的maple语句,由一条或几条命令组成,必须符合maple 的语法 方法2:

maple(’function’,arg1, arg2,…) 其中function为maple中的函数名称,arg1, arg2,…是函数function所用的参数。注:如果方法1行不通,可尝试方法2(个人经验)。 基本代数部分 如何用matlab求阶乘 factorial(n)求n的阶乘 如何用matlab配方 没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下: 首先加载maple中的student函数库,加载方法为:maple(’with(student)’) 然后运行maple中的配方命令,格式为: maple(’completesquare(f)’)把f配方,其中f为代数表达式或代数方程maple(’completesquare(f,x)’)把f按指定的变量x配方,其中f同上maple(’completesquare(f,{x,y,...})’)把f按指定的变量x,y,...配方 maple(’completesquare(f,[x,y,...])’)把f按指定的变量x,y,...配方, 如何用matlab进行多项式运算 (1)合并同类项 syms 表达式中包含的变量 collect(表达式,指定的变量)

matlab中常用的函数

A abs 绝对值、模、字符的ASCII码值 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 align 启动图形对象几何位置排列工具 all 所有元素非零为真 angle 相角 ans 表达式计算结果的缺省变量名any 所有元素非全零为真area 面域图 argnames 函数M文件宗量名asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 assignin 向变量赋值 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红黄调秋色图阵axes 创建轴对象的低层指令axis 控制轴刻度和风格的高层指令 B bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图barh 二维水平直方图 base2dec X进制转换为十进制bin2dec 二进制转换为十进制blanks 创建空格串 bone 蓝色调黑白色图阵box 框状坐标轴 break while 或for 环中断指令brighten 亮度控制 C capture ;3版以前?捕获当前图形cart2pol 直角坐标变为极或柱坐标cart2sph 直角坐标变为球坐标cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具 cdf2rdf 复数特征值对角阵转为实数块对角阵 ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组celldisp 显示元胞数组内容cellplot 元胞数组内部结构图示char 把数值、符号、内联类转换为字符对象 chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解

完整word版,matlab各种函数大全

MATLAB函数表 管理命令和函数 help 在线帮助文件 doc 装入超文本说明 what M、MAT、MEX文件的目录列表type 列出M文件 lookfor 通过help条目搜索关键字which 定位函数和文件 Demo 运行演示程序 Path 控制MATLAB的搜索路径管理变量和工作空间 Who 列出当前变量 Whos 列出当前变量(长表) Load 从磁盘文件中恢复变量 Save 保存工作空间变量 Clear 从内存中清除变量和函数 Pack 整理工作空间内存 Size 矩阵的尺寸 Length 向量的长度 disp 显示矩阵或 与文件和操作系统有关的命令 cd 改变当前工作目录 Dir 目录列表 Delete 删除文件 Getenv 获取环境变量值 ! 执行DOS操作系统命令 Unix 执行UNIX操作系统命令并返回Diary 保存MATLAB任务 控制命令窗口 Cedit 设置命令行编辑 Clc 清命令窗口 Home 光标置左上角 Format 设置输出格式 Echo 底稿文件内使用的回显命令 more 在命令窗口中控制分页输出启动和退出MATLAB Quit 退出MATLAB Startup 引用MATLAB时所执行的M文件Matlabrc 主启动M文件 一般信息 Info MATLAB系统信息及Mathworks公Subscribe 成为MATLAB的订购用户hostid MATLAB主服务程序的识别代号Whatsnew 在说明书中未包含的新信息Ver 版本信息 操作符和特殊字符 + 加 —减 * 矩阵乘法 .* 数组乘法 ^ 矩阵幂 .^ 数组幂 \ 左除或反斜杠 / 右除或斜杠 ./ 数组除 Kron Kronecker张量积 : 冒号 ( ) 圆括号 [ ] 方括号 . 小数点 .. 父目录 …继续 , 逗号 ; 分号 % 注释 ! 感叹号 ‘转置或引用 = 赋值 = = 相等 < > 关系操作符 & 逻辑与 | 逻辑或 ~ 逻辑非 xor 逻辑异或 逻辑函数 Exist 检查变量或函数是否存在Any 向量的任一元为真,则其值为真All 向量的所有元为真,则其值为真Find 找出非零元素的索引号 三角函数 Sin 正弦 Sinh 双曲正弦 Asin 反正弦 Asinh 反双曲正弦 Cos 余弦 Cosh 双曲余弦 Acos 反余弦 Acosh 反双曲余弦 Tan 正切 Tanh 双曲正切 Atan 反正切 Atan2 四象限反正切

相关主题
文本预览
相关文档 最新文档