文档库 最新最全的文档下载
当前位置:文档库 › MatLab在函数的求解方法

MatLab在函数的求解方法

MatLab在函数的求解方法
MatLab在函数的求解方法

MatLab & 数学建模第四讲数值计算

一、方程求解

求解单个代数方程

MATLAB具有求解符号表达式的工具,如果表达式不是一个方程式(不含等号),则在求解之前函数solve将表达式置成等于0。

>> solve( ' a*x^2+b*x+c ' ) % solve for the roots of the eqution ans=

[1/2/a*(-b+(b^2-4*a*c)^1/2)]

[1/2/a*(-b-(b^2-4*a*c)^1/2)]

结果是符号向量,其元素是方程的2个解。如果想对非缺省x变量求解,solve 必须指定变量。

>> solve( ' a*x^2+b*x+c ' , ' b ' ) % solve for b

ans=

-(a*x^2+c)/x

带有等号的符号方程也可以求解。

>> f=solve( ' cos(x)=sin(x) ' ) % solve for x

f=

1/4*pi

>> t=solve( ' tan(2*x)=sin(x) ' )

t=

[ 0]

[acos(1/2+1/2*3^(1/2))]

[acos(1/2=1/2*3^(1/2))]

并得到数值解。

>> numeric(f)

ans=

0.7854

>> numeric(t)

ans=

0 + 0.8314i

1.9455

注意在求解周期函数方程时,有无穷多的解。在这种情况下,solve对解的搜索范围限制在接近于零的有限范围,并返回非唯一的解的子集。

如果不能求得符号解,就计算可变精度解。

>> x=solve( ' exp(x)=tan(x) ' )

x=

1.3079

代数方程组求解

可以同时求解若干代数方程,语句solve(s1,s2,.....,sn)对缺省变量求解n个方程,语句solve(s1,s2,...,sn,' v1,v2,...,vn ')对n个' v1,v2,...vn '的未知数求解n个方程。

solve(f) 解符号方程式f。

solve(f1,…,fn) 解由f1,…,fn组成的联立方程式。

我们先定义以下的方程式:

>>eq1 = 'x-3=4'; % 注意也可写成'eq1=x-7'

>>eq2 = 'x*2-x-6=0'; % 注意也可写成'eq2=x*2-x-6'

>>eq3 = 'x2+2*x+4=0';

>>eq4 = '3*x+2*y-z=10';

>>eq5 = '-x+3*y+2*z=5';

>>eq6 = 'x-y-z=-1';

>>solve(eq1)

ans=

7

>>solve(eq2)

ans=

[[3],[-2]]' % 原方程式有二个根3, -2

>>solve(eq3)

ans=

[[-1+i*3^(1/2)],[-1-i*3^(1/2)]]' % 注意实根和虚根的表示式

>>solve(eq4,eq5,eq6) % 解三个联立方程式

ans=

x = -2, y = 5, z = -6

如何处理中小学典型的代数问题?

黛安娜(Diane)想去看电影,她从小猪存钱罐倒出硬币并清点,她发现:

?10美分的硬币数加上5美分的硬币总数的一半等于25美分的硬币数。

?1美分的硬币数比5美分、10美分以及25美分的硬币总数多10。

?25美分和10美分的硬币总数等于1美分的硬币数加上1/4的5美分的硬币数

?25美分的硬币数和1美分的硬币数比5美分的硬币数加上8倍的10美分的硬币数多1。

如果电影票价为3.00美元,爆米花为1.00美元,糖棒为50美分,她有足够的钱去买这三样东西?

首先,根据以上给出的信息列出一组线性方程,假如p,n,d和q分别表示1美分,5美分,10美分,和25美分的硬币数

d

n p

q p n d q q d p

n

q p n d

+

+

==++-+=+

+=+-

2

10

4

81

然后,建立MATLAB符号方程并对变量求解。>> eq1= ' d+(n+p)/2=q ' ;

>> eq2= ' p=n+d+q-10 ' ;

>> eq3= ' q+d=p+n/4 ' ;

>> eq4= ' q+p=n+8*d-1 ' ;

>>[pennies ,nickles ,dimes ,quarters]=solve(equ1,equ2,equ3,equ4,' p ,n ,d ,q ' ) pennies= 16 nickles= 8 dimes= 3

quarters= 15

所以,黛安娜有16枚1美分的硬币,8枚5美分的硬币,3枚10美分的硬币,15枚25美分的硬币,这就意味着

>> money=.01*16+.05*8+.10*3+.25*15 money= 4.6100

她就有足够的钱去买电影票,爆米花和糖棒并剩余11美分。

【例】求解二元函数方程组???=+==-=0)cos(),(0

)sin(),(2

1y x y x f y x y x f 的零点。

(0)从三维坐标初步观察两函数图形相交情况

x=-2:0.05:2;y=x;[X,Y]=meshgrid(x,y); %产生x-y 平面上网点坐标 F1=sin(X-Y);F2=cos(X+Y); F0=zeros(size(X)); surf(X,Y,F1),

xlabel('x'),ylabel('y'), view([-31,62]),hold on, surf(X,Y,F2),surf(X,Y,F0), shading interp, %(间隔补齐) hold off

图 5.6.3-0 两函数的三维相交图

(1)在某区域观察两函数0等位线的交点情况

clear;

x=-2:0.5:2;y=x;[X,Y]=meshgrid(x,y); %产生x-y平面上网点坐标

F1=sin(X-Y);F2=cos(X+Y);

v=[-0.2, 0, 0.2]; %指定三个等位值,是为了更可靠地判断0等位线的存在。contour(X,Y,F1,v) %画F1的三条等位线。

hold on,contour(X,Y,F2,v),hold off %画F2的三条等位线。

图 5.6.3-1 两个二元函数0等位线的交点图

(2)从图形获取零点的初始近似值

在图5.6.3-1中,用ginput获取两个函数0等位线(即三线组中间那条线)交点的坐标。

[x0,y0]=ginput(2); %在图上取两个点的坐标

disp([x0,y0])

-0.7926 -0.7843

0.7926 0.7843

(3)利用fsolve求精确解。以求(0.7926,7843)附近的解为例。

本例直接用字符串表达被解函数。注意:在此,自变量必须写成x(1), x(2)。

假如写成xy(1), xy(2),指令运行将出错。

fun='[sin(x(1)-x(2)),cos(x(1)+x(2))]'; %<12> xy=fsolve(fun,[x0(2),y0(2)])

%<13>

xy =

0.7854 0.7854

(4)检验

fxy1=sin(xy(1)-xy(2));fxy2=cos(xy(1)+xy(2));disp([fxy1,fxy2])

1.0e-006 *

-0.0994 0.2019

〖说明〗

●指令<12><13>可用以下任何一组指令取代。

(A)内联函数形式指令

fun=inline('[sin(x(1)-x(2)), cos(x(1)+x(2))]', 'x'); %项'x'必须有。

xy=fsolve(fun,[x0(2), y0(2)]);

(B)M函数文件形式及指令

先用如下fun.m表示被解函数(并在搜索路径上)

[fun.m]

function ff=fun(x)

ff(1)=sin(x(1)-x(2));

ff(2)=cos(x(1)+x(2));

然后运行指令xy=fsolve('fun',[x0(2),y0(2)]) 。

●第四步检验中的结果表明:所找零点处的函数值小于6

10 ,是一个十分接近

零的小数。该精度由options.TolFun控制。options.TolFun的缺省值是

1.0000e-006。它可以用下列指令看到

options=optimset('fsolve');

options.TolFun

ans =

1.0000e-006

线性方程求解

a= [ 7 2 1 -2

9 15 3 -2

-2 -2 11 5

1 3

2 13]

b=[4 7 -1 0]'

x=a\b

x =

0.4979

0.1445

0.0629

-0.0813

单个微分方程

常微分方程有时很难求解,MATLAB提供了功能强大的工具,可以帮助求解微分方程。函数dsovle计算常微分方程的符号解。因为我们要求解微分方程,就需要用一种方法将微分包含在表达式中。所以,dsovle句法与大多数其它函数有一些不同,用字母D来表示求微分,D2,D3等等表示重复求微分,并以此来设定方程。任何D后所跟的字母为因变量。

MATLAB解常微分方程式的语法是dsolve('equation','condition'),其中equation代表常微分方程式即y'=g(x,y),且须以Dy代表一阶微分项y'D2y代表二阶微分项y'',condition则为初始条件。

方程d y dx

/=0用符号表达式D2y=0来表示。独立变量可以指定或由symvar 22

规则选定为缺省。例如,一阶方程dy/dx=1+y2的通解为:

>> dsolve( ' Dy=1+y^2 ' ) % find the general solution

ans=

-tan(-x+C1)

其中,C1是积分常数。求解初值y(0)=1的同一个方程就可产生:

>> dsolve(' Dy=1+y^2 ',' y(0)=1 ') % add an initial

condition

y=

tan(x+1/4*pi)

独立变量可用如下形式指定:

>> dsolve(' Dy=1+y^2 ',' y(0)=1 ',' v ') % find

solution to dy/dv

ans=

tan(v+1/4*pi)

让我们举一个二阶微分方程的例子,该方程有两个初始条件:

d y dx

22=cos(2x)-y dy dx (0)=0 y(0)=1

>> y=dsolve(' D2y=cos(2*x)-y ',' Dy(0)=0 ',' y(0)=1 ') y=

-2/3*cos(x)^2+1/3+4/3*cos(x)

>> y=simple(y) % y looks like it can be simplified y=

-1/3*cos(2*x)+4/3*cos(x)

通常,要求解的微分方程含有一阶以上的项,并以下述的形式表示:

d y dx

22

-2dy

dx -3y=0 通解为:

>> y=solve( 'D2y-2Dy-3*y=0 ')

y=

C1*exp(-x)+C2*exp(3*x)

加上初始条件:y(0)=0和y(1)=1可得到:

>> y=solve( ' D2y-2Dy-3*y=0 ' , ' y(0)=0,y(1)=1 ' ) y=

1/(exp(-1)-exp(3))*exp(-x)-1/(exp(-1)-exp(3))*exp(3*x)

>> y=simple(y) % this looks like a candidate for simplification y=

-(exp(-x)-exp(3*x))/(exp(3)-exp(-1))

>> pretty(y) % pretty it up exp(-x)-exp(3 x) - --------------------- exp(3) -exp(-1)

现在来绘制感兴趣的区域内的结果。

>> ezplot(y,[-6 2])

例:假设有以下三个一阶常微分方程式和其初始条件

y'=3x2, y(2)=0.5

y'=2.x.cos(y)2, y

(0)=0.25

y'=3y+exp(2x), y(0)=3

对应上述常微分方程式的符号运算式为:

>>soln_1 = dsolve('Dy = 3*x^2','y(2)=0.5')

ans=

x^3-7.0000

>>ezplot(soln_1,[2,4]) % 看看这个函数的长相

>>soln_2 = dsolve('Dy = 2*x*cos(y)^2','y(0) = pi/4')

ans= atan(x^2+1)

>>soln_3 = dsolve('Dy = 3*y + exp(2*x)',' y(0) = 3') ans=

-exp(2*x)+4*exp(3*x)

微分方程组

函数dsolve 也可同时处理若干个微分方程式,下面有两个线性一阶方程。

dx

df

=3f+4g dg dx =-4f+3g

通解为:

>> [f ,g]=dsolve ( ' Df=3*f+4*g ' , ' Dg=-4*f+3*g ' ) f=

C1*exp(3*x)*sin(4*x)+C2*exp(3*x)*cos(4*x) g=

-C2*exp(3*x)*sin(4*x)+C1*exp(3*x)*cos(4*x)

加上初始条件:f(0)=0和g(0)=1,我们可以得到:

>> [f ,g]=dsolve( ' Df=3*f+4*g ' , ' Dg=-4*f+3*g ' , ' f(0)=0,g(0)=1 ' ) f=

exp(3*x)*sin(4*x) g=

exp(3*x)*cos(4*x)

微分和积分

微分和积分是微积分学研究和应用的核心,并广泛地用在许多工程学科。MATLAB符号工具能帮助解决许多这类问题。

微分

符号表达式的微分以四种形式利用函数diff:

>> f= ' a*x^3+x^2-b*x-c ' % define a symbolic expression

f=

a*x^3+x^2-b*x-c

>> diff(f) % differentiate with respect to the default variable x

ans=

3*a*x^2+2*x-b

>> diff(f,'a ') % differentiate with respect to a

ans=

x^3

>> diff(f,2) % differentiate twice with respect to x

ans=

6*a*x+2

>> diff(f,' a ',2) % differentiate twice with respect to a

ans=

函数diff也可对数组进行运算。如果F是符号向量或数组,diff(F)对数组内的各个元素进行微分。

>> F=sym(' [a*x, b*x^2; c*x^3, d*s] ') % create a

symbolic array

F=

[ a*x, b*x^2]

[c*x^3, d*s]

>> diff(F) % differentiate the element with respect to x

ans=

[ a,2*b*x]

[3*c*x^2, 0]

注意函数diff也用在MATLAB,计算数值向量或矩阵的数值差分。对于一个数值向量或矩阵M,diff(M)计算M(2: m,: )-M(1: m-1,: )的数值差分,如下所示:

>> m=[(1: 8).^2)] % create a vector

M=

1 4 9 16 25 36 49 64

>> diff(M) % find the differences between elements

ans=

3 5 7 9 11 13 15

如果diff的表达式或可变参量是数值,MATLAB就非常巧妙地计算其数值差分;如果参量是符号字符串或变量,MATLAB就对其表达式进行微分。

积分

积分函数int(f),其中f是一符号表达式,它力图求出另一符号表达式F使diff(F)=f。正如从研究微分学所了解的,积分比微分复杂得多。积分或逆求导不一定是以封闭形式存在,或许存在但软件也许找不到,或者软件可明显地求解,但超过内存或时间限制。当MATLAB不能找到逆导数时,它将返回未经计算的命令。

>> int( ' log(x)/exp(x^2) ' ) % attempt to integrate

ans=

log(x)/exp(x^2)

同微分一样,积分函数有多种形式。形式int(f)相对于缺省的独立变量求逆导数;形式(f,' s ')相对于符号变量s积分;形式int(f,a,b)和int(f,' s ',a,b),a,b是数值,求解符号表达式从a到b的定积分;形式int(f,' m ' ,' n ')和形式int(f,' s ',' m ',' n '),其中m,n是符号变量,求解符号表达式从m到n的定积分。

>> f=' sin(s+2*x) ' % crate a symbolic function

f=

sin(s+2*x)

>> int(f) % integrate with respect to x

ans=

-1/2*cos(s+2*x)

>> int(f,' s ') % integrate with respect to s

ans=

-cos(s+2*x)

>> int(f,pi/2,pi) % integrate with respect to x from

π/2 toπ

ans=

-cos(x)

>> int(f,' s ',pi/2,pi) % integrate with respect to

s from π/2 to π

ans=

cos(2*x)-sin(2*x)

>> int(f,' m ',' n ') % integrate with respect to x

from m to n

ans=

-1/2*cos(s+2*n)+1/2*cos(s+2*m)

正如函数diff一样,积分函数int对符号数组的每一个元素进行运算。

>> F=sym( ' [a*x,b*x^2;c*x^3,d*s] ' ) % create a symbolic

array

F=

[ a*x,b*x^2]

[c*x^3, d*s]

>> diff(F) % ubtegrate the array elements with respect to x

ans=

[1/2*a*x^2,1/3*b*x^3]

[1/4*c*x^4, d*s*x]

diff函数用以演算一函数的微分项,相关的函数语法有下列4个:

diff(f) 传回f对预设独立变数的一次微分值

diff(f,'t')传回f对独立变数t的一次微分值

diff(f,n)传回f对预设独立变数的n次微分值

diff(f,'t',n)传回f对独立变数t的n次微分值

先定义下列三个方程式,接著再演算其微分项:

>>S1 = '6*x^3-4*x^2+b*x-5';

>>S2 = 'sin(a)';

>>S3 = '(1 - t^3)/(1 + t^4)';

>>diff(S1)

ans=

18*x^2-8*x+b

>>diff(S1,2)

ans=

36*x-8

>>diff(S1,'b')

ans=

x

>>diff(S2)

ans=

cos(a)

>>diff(S3)

ans=

-3*t^2/(1+t^4)-4*(1-t^3)/(1+t^4)^2*t^3

>>simplify(diff(S3))

ans=

t^2*(-3+t^4-4*t)/(1+t^4)^2

int函数用以演算一函数的积分项,这个函数要找出一符号式 F 使得

diff(F)=f。如果积分式的解析式 (analytical form, closed form) 不存在的

话或是MATLAB无法找到,则 int 传回原输入的符号式。相关的函数语法有下列4个:

int(f)传回f对预设独立变数的积分值

int(f,'t')传回f对独立变数t的积分值

int(f,a,b)传回f对预设独立变数的积分值,积分区间为[a,b],a和b为数值式

int(f,'t',a,b)传回f对独立变数t的积分值,积分区间为[a,b],a和b为数值式

int(f,'m','n')传回f对预设变数的积分值,积分区间为[m,n],m和n为符号式

我们示范几个例子:

>>S1 = '6*x^3-4*x^2+b*x-5';

>>S2 = 'sin(a)';

>>S3 = 'sqrt(x)';

>>int(S1)

ans=

3/2*x^4-4/3*x^3+1/2*b*x^2-5*x

>>int(S2)

ans=

-cos(a)

>>int(S3)

ans=

2/3*x^(3/2)

>>int(S3,'a','b')

ans=

2/3*b^(3/2)- 2/3*a^(3/2)

>>int(S3,0.5,0.6)

ans=

2/25*15^(1/2)-1/6*2^(1/2)

>>numeric(int(S3,0.5,0.6)) % 使用numeric函数可以计算积分的数值

ans=

0.0741

数值积分

先考虑一个积分式的数学式如下:

其中a, b分别为这个积分式的上限及下限,f(x) 则为要积分的函树。要求解上述的积分式,必须设定a, b和f(x)。以MATLAB 的积分函数求解的过程亦同,也要定义f(x) 及设定a,b,还须设定在区间[a,b] 之间离散点(discretized points) 数目,剩下的工作就是选择精度不同的积分法来求解了。

梯形法

MATLAB提供最简单的积分函数是梯形法trapz,我们先说明梯形法语法

trapz(x,y),其中x,y分别代表数目相同的阵列或矩阵,而y与x的关系可以由是一函数型态(如y=sin(x))或是不以函数描述的离散型态。

我们看一简单积分式

以下为MATLAB 的程式

>> x=0:pi/100:pi;

>> y=sin(x);

>> k=trapz(x,y)

k =

1.9998

二次函数法

MATLAB 另外提供二种积分函数,它们分别是辛普森法quad和牛顿-康兹法quad8。三种方法的精确度由低而高,分别为trapz, quad, quad8。

由于这二种方法依据的积分法不同于梯形法,因此它们的语法就和trapz不同;其语法为quad('function',a,b)(quad8语法相同),其中function是一已定义函数的名称(如sin, cos, sqrt, log等),而a, b是积分的下限和上限。和trapz

比较,quad, quad8不同之处在于这二者类似解析式的积分式,只须设定上下限及定义要积分的函数;而trapz则是针对离散点型态的数据做积分。

我们看一简单积分式

以下为MATLAB 的程式

>> a=0; b=0.5;

>> kq=quad('sqrt',a,b)

kq =

0.2357

>> kq8=quad8('sqrt',a,b)

kq8 =

0.2357

再来看一个较复杂的积分式

>> x=-1:0.17:2;

>> y=humps(x);

>> area=trapz(x,y)

area =

25.9174

>> x=-1:0.07:2;

>> y=humps(x);

>> area=trapz(x,y)

area =

26.6243

>> area=quad('hump',-1,2) area =

26.3450

>> area=quad8('hump',-1,2) area =

26.3450

符号表达式画图

在许多的场合,将表达式可视化是有利的。MATLAB提供了函数ezplot来完成该任务。

>> y=' 16*x^2+64*x+96 ' % expression to plot

y=

16*x^2+64*x+96

>> ezplot(y)

图符号函数16*x^2+64*x+96 (-2π≤x≤2π)

ezplot绘制了定义域为-2π≤x≤2π的给定符号函数,并相应地调整了y轴比例,还加了网格栅和标志。在这个例子中,我们感兴趣的时间是从0到6。让我们再试一下,并指定时间范围,

>> ezplot(y,[0 6]) % plot y for 0≤x≤6

matlab函数用法

A 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 b bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图 barh 二维水平直方图 base2dec X进制转换为十进制 bin2dec 二进制转换为十进制 blanks 创建空格串 bone 蓝色调黑白色图阵 box 框状坐标轴 break while 或for 环中断指令 brighten 亮度控制 C c

capture (3版以前)捕获当前图形 cart2pol 直角坐标变为极或柱坐标 cart2sph 直角坐标变为球坐标 cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具cdf2rdf 复数特征值对角阵转为实数块对角阵ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组 celldisp 显示元胞数组内容 cellplot 元胞数组内部结构图示 char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数 chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解 clabel 等位线标识 cla 清除当前轴 class 获知对象类别或创建对象 clc 清除指令窗 clear 清除内存变量和函数 clf 清除图对象 clock 时钟 colorcube 三浓淡多彩交叉色图矩阵 colordef 设置色彩缺省值 colormap 色图 colspace 列空间的基 close 关闭指定窗口 colperm 列排序置换向量 comet 彗星状轨迹图 comet3 三维彗星轨迹图 compass 射线图 compose 求复合函数 cond (逆)条件数 condeig 计算特征值、特征向量同时给出条件数condest 范-1条件数估计 conj 复数共轭 contour 等位线 contourf 填色等位线 contour3 三维等位线

(完整版)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自定义函数 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; 3、Inline:无需M文件,直接定义; 4、Syms+subs:无需M文件,直接定义; 5、字符串+subs:无需M文件,直接定义. 6、匿名函数 7、直接通过@符号定义. 1、函数文件+调用函数文件:定义多个M文件: %调用函数文件:myfile.m clear clc for t=1:10 y=mylfg(t);%调用函数时要注意实参与形参的匹配! fprintf(‘%4d^(1/3)=%6.4f\n’,t,y); end %自定义函数文件:mylfg.m function y=mylfg(x)%注意:函数名(mylfg)必须与文件名(mylfg.m)一致 Y=x^(1/3); 注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。 2、函数文件+子函数:定义一个具有多个子函数的M文件 %函数文件:funtry2.m function[]=funtry2()%可以无自变量()或无因变量[] for t=1:10 y=lfg2(t); fprintf('%4d^(1/3)=%6.4f\n',t,y); end function y=lfg2(x)%%子函数 y=x^(1/3);

%注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。 3、Inline:无需M文件,直接定义; %inline命令用来定义一个内联函数:f=inline(‘函数表达式’,‘变量1’,’变量2’,……)。 调用方式:y=f(数值列表)%注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。 例如: f=inline(‘x^2+y’,’x’,’y’); z=f(2,3) Ans=7 注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。 内联函数定义方式是将f作为一个内部函数调用。其特点是:调用方式最接近于我们平时对函数的定义,使程序更具可读性。同时由于它是基于Matlab的数值计算内核的,所以它的运算速度较快,程序更有效率。 这种定义方式的缺点: 定义一个内联函数用去的内存空间比相同条件下其他的方法要大得多。 该方法只能对数值进行代入,不支持符号代入,并且对于定义后的函数不能进行求导等符号运算。 例:通过命令clear清除工作空间的所有变量后,执行如下指令 Clear Clc f=’x^2’; Syms x g; g=x^2; h=inline(‘x^2’,’x’); whos 4、Syms+subs:无需M文件,直接定义; 用syms定义一个符号表达式,用subs调用: Syms f x%定义符号 f=1/(1+x^2);%定义符号表达式也是符号

(完整版)matlab函数大全(非常实用)

信源函数 randerr 产生比特误差样本 randint 产生均匀分布的随机整数矩阵 randsrc 根据给定的数字表产生随机矩阵 wgn 产生高斯白噪声 信号分析函数 biterr 计算比特误差数和比特误差率 eyediagram 绘制眼图 scatterplot 绘制分布图 symerr 计算符号误差数和符号误差率 信源编码 compand mu律/A律压缩/扩张 dpcmdeco DPCM(差分脉冲编码调制)解码dpcmenco DPCM编码 dpcmopt 优化DPCM参数 lloyds Lloyd法则优化量化器参数 quantiz 给出量化后的级和输出值 误差控制编码 bchpoly 给出二进制BCH码的性能参数和产生多项式convenc 产生卷积码 cyclgen 产生循环码的奇偶校验阵和生成矩阵cyclpoly 产生循环码的生成多项式 decode 分组码解码器 encode 分组码编码器 gen2par 将奇偶校验阵和生成矩阵互相转换gfweight 计算线性分组码的最小距离 hammgen 产生汉明码的奇偶校验阵和生成矩阵rsdecof 对Reed-Solomon编码的ASCII文件解码rsencof 用Reed-Solomon码对ASCII文件编码rspoly 给出Reed-Solomon码的生成多项式syndtable 产生伴随解码表 vitdec 用Viterbi法则解卷积码 (误差控制编码的低级函数) bchdeco BCH解码器 bchenco BCH编码器 rsdeco Reed-Solomon解码器 rsdecode 用指数形式进行Reed-Solomon解码 rsenco Reed-Solomon编码器 rsencode 用指数形式进行Reed-Solomon编码 调制与解调

Matlab函数大全(第一版)

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( ) 取绝对值 atan( ) 反正切(返回弧度) angle( ) 返回复数的相位角 atand( ) 反正切(返回度数) mod(x,y) 返回x/y的余数 sum( ) 向量元素求和 3、其余函数可以用help elfun和help specfun命令获得。 4、常用常数的值: pi3.1415926……. realmin最小浮点数,2^-1022 i虚数单位 realmax最大浮点数,(2-eps)2^1022

matlab代码大全

MATLAB主要命令汇总 MATLAB函数参考 附录1.1 管理用命令 函数名功能描述函数名功能描述 addpath 增加一条搜索路径 rmpath 删除一条搜索路径 demo 运行Matlab演示程序 type 列出.M文件 doc 装入超文本文档 version 显示Matlab的版本号 help 启动联机帮助 what 列出当前目录下的有关文件 lasterr 显示最后一条信息 whatsnew 显示Matlab的新特性 lookfor 搜索关键词的帮助 which 造出函数与文件所在的目录 path 设置或查询Matlab路径 附录1.2管理变量与工作空间用命令 函数名功能描述函数名功能描述 clear 删除内存中的变量与函数 pack 整理工作空间内存 disp 显示矩阵与文本 save 将工作空间中的变量存盘 length 查询向量的维数 size 查询矩阵的维数 load 从文件中装入数据 who,whos 列出工作空间中的变量名 附录1.3文件与操作系统处理命令 函数名功能描述函数名功能描述 cd 改变当前工作目录 edit 编辑.M文件 delete 删除文件 matlabroot 获得Matlab的安装根目录 diary 将Matlab运行命令存盘 tempdir 获得系统的缓存目录 dir 列出当前目录的内容 tempname 获得一个缓存(temp)文件 ! 执行操作系统命令 附录1.4窗口控制命令 函数名功能描述函数名功能描述 echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面format 设置输出格式 附录1.5启动与退出命令 函数名功能描述函数名功能描述 matlabrc 启动主程序 quit 退出Matlab环境 startup Matlab自启动程序 附录2 运算符号与特殊字符附录 2.1运算符号与特殊字符 函数名功能描述函数名功能描述

MATLAB各种“窗函数”定义及调用

MATLAB窗函数大全 1.矩形窗(Rectangle Window)调用格式:w=boxcar(n),根据长度n 产生一个矩形窗w。 2.三角窗(Triangular Window)调用格式:w=triang(n),根据长度n 产生一个三角窗w。 3.汉宁窗(Hanning Window)调用格式:w=hanning(n),根据长度n 产生一个汉宁窗w。 4.海明窗(Hamming Window)调用格式:w=hamming(n),根据长度n 产生一个海明窗w。 5.布拉克曼窗(Blackman Window)调用格式:w=blackman(n),根据长度n 产生一个布拉克曼窗w。 6.恺撒窗(Kaiser Window)调用格式:w=kaiser(n,beta),根据长度n 和影响窗函数旁瓣的β参数产生一个恺撒窗w。 窗函数: 1.矩形窗:利用w=boxcar(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。‘w=boxcar(n)’等价于‘w=ones(1,n)’. 2.三角窗:利用w=triang(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。 w=triang(N-2)等价于bartlett(N)。

3.汉宁窗:利用w=hanning(n)得到窗函数,其中n为窗函数的长度,而返回值w 为一个n 阶的向量,包含了窗函数的n个系数。 4.海明窗:利用w=hamming(n)得到窗函数,其中n为窗函数的长度,而返回值w 为一个n 阶的向量,包含了窗函数的n个系数。它和汉宁窗的主瓣宽度相同,但是它的旁瓣进一步被压低。 5.布拉克曼窗:利用w=blackman(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它的主瓣宽度是矩形窗主瓣宽度的3倍,为12*pi/N,但是它的最大旁瓣值比主瓣值低57dB。 6.切比雪夫窗:它是等波纹的,利用函数w=chebwin(N,R)方式设计出N阶的切比雪夫2窗函数,函数的主瓣值比旁瓣值高RdB,且旁瓣是等波纹的。 7.巴特里特窗:利用w=bartlett(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。 8.凯塞窗:利用w=kaiser(n,beta)的形式得到窗函数。

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绘图功能大全

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab 还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平面坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基本函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基本用法

plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式 plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。 例51 在[0 , 2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令 >> x=0:pi/100:2*pi; >> y=2*exp(-0.5*x).*sin(2*pi*x); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。 例52 绘制曲线 这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线: >> t=-pi:pi/100:pi; >> x=t.*cos(3*t); >> y=t.*sin(t).*sin(t); >> plot(x,y) 程序执行后,打开一个图形窗口,在其中绘制出如下曲线 以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。实际应用中还有一些变化。

MATLAB函数大全.doc

附录1 常用命令 附录1.1 管理用命令 函数名功能描述函数名功能描述 addpath 增加一条搜索路径rmpath 删除一条搜索路径 demo 运行Matlab演示程序type 列出.M文件 doc 装入超文本文档version 显示Matlab的版本号 help 启动联机帮助what 列出当前目录下的有关文件 lasterr 显示最后一条信息whatsnew 显示Matlab的新特性 lookfor 搜索关键词的帮助which 造出函数与文件所在的目录 path 设置或查询Matlab路径 附录1.2管理变量与工作空间用命令 函数名功能描述函数名功能描述 clear 删除内存中的变量与函数p ack 整理工作空间内存 disp 显示矩阵与文本save 将工作空间中的变量存盘 length 查询向量的维数size 查询矩阵的维数 load 从文件中装入数据who,whos 列出工作空间中的变量名 附录1.3文件与操作系统处理命令 函数名功能描述函数名功能描述 cd 改变当前工作目录edit 编辑.M文件 delete 删除文件matlabroot 获得Matlab的安装根目录 diary 将Matlab运行命令存盘t empdir 获得系统的缓存目录 dir 列出当前目录的内容tempname 获得一个缓存(temp)文件 ! 执行操作系统命令 附录1.4窗口控制命令 函数名功能描述函数名功能描述 echo 显示文件中的Matlab中的命令m ore 控制命令窗口的输出页面 format 设置输出格式 附录1.5启动与退出命令 函数名功能描述函数名功能描述 matlabrc 启动主程序quit 退出Matlab环境 startup Matlab自启动程序 附录2 运算符号与特殊字符附录 2.1运算符号与特殊字符 函数名功能描述函数名功能描述 + 加... 续行标志 - 减, 分行符(该行结果不显示) * 矩阵乘; 分行符(该行结果显示) .* 向量乘% 注释标志 ^ 矩阵乘方! 操作系统命令提示符

Matlab中的函数

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 b? bar 二维直方图? bar3 三维直方图? bar3h 三维水平直方图? barh 二维水平直方图? base2dec X进制转换为十进制? bin2dec 二进制转换为十进制? blanks 创建空格串? bone 蓝色调黑白色图阵? box 框状坐标轴?

break while 或for 环中断指令? brighten 亮度控制? C c? capture (3版以前)捕获当前图形? cart2pol 直角坐标变为极或柱坐标? cart2sph 直角坐标变为球坐标? cat 串接成高维数组? caxis 色标尺刻度? cd 指定当前目录? cdedit 启动用户菜单、控件回调函数设计工具? cdf2rdf 复数特征值对角阵转为实数块对角阵? ceil 向正无穷取整? cell 创建元胞数组? cell2struct 元胞数组转换为构架数组? celldisp 显示元胞数组内容? cellplot 元胞数组内部结构图示? char 把数值、符号、内联类转换为字符对象? chi2cdf 分布累计概率函数? chi2inv 分布逆累计概率函数? chi2pdf 分布概率密度函数? chi2rnd 分布随机数发生器? chol Cholesky分解? clabel 等位线标识? cla 清除当前轴? class 获知对象类别或创建对象? clc 清除指令窗? clear 清除内存变量和函数? clf 清除图对象? clock 时钟? colorcube 三浓淡多彩交叉色图矩阵? colordef 设置色彩缺省值? colormap 色图? colspace 列空间的基? close 关闭指定窗口? colperm 列排序置换向量?

Matlab中图像函数大全

图像增强 1. 直方图均衡化的Matlab 实现 1.1 imhist 函数 功能:计算和显示图像的色彩直方图 格式:imhist(I,n) imhist(X,map) 说明:imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256;imhist(X, map) 就算和显示索引色图像X 的直方图,map 为调色板。用stem(x,coun ts) 同样可以显示直方图。 1.2 imcontour 函数 功能:显示图像的等灰度值图 格式:imcontour(I,n),imcontour(I,v) 说明:n 为灰度级的个数,v 是有用户指定所选的等灰度级向量。 1.3 imadjust 函数 功能:通过直方图变换调整对比度 格式:J=imadjust(I,[low high],[bottom top],gamma) newmap=imadjust(map,[low high],[bottom top],gamma) 说明:J=imadjust(I,[low high],[bottom top],gamma) 其中,gamma 为校正量r,[low high] 为原图像中要变换的灰度范围,[bottom top] 指定了变换后的灰度范围;newmap=imadjust(map,[low high],[bottom top],gamm a) 调整索引色图像的调色板map 。此时若[low high] 和[bottom top] 都为2×3的矩阵,则分别调整R、G、B 3个分量。

1.4 histeq 函数 功能:直方图均衡化 格式:J=histeq(I,hgram) J=histeq(I,n) [J,T]=histeq(I,...) newmap=histeq(X,map,hgram) newmap=histeq(X,map) [new,T]=histeq(X,...) 说明:J=histeq(I,hgram) 实现了所谓“直方图规定化”,即将原是图象I 的直方图变换成用户指定的向量hgram 。hgram 中的每一个元素都在[0,1] 中;J=histeq(I,n) 指定均衡化后的灰度级数n ,缺省值为64;[J,T]=histeq(I,...)返回从能将图像I 的灰度直方图变换成图像J 的直方图的变换T ;newma p=histeq(X,map) 和[new,T]=histeq(X,...) 是针对索引色图像调色板的直方图均衡。 2. 噪声及其噪声的Matlab 实现 imnoise 函数 格式:J=imnoise(I,type) J=imnoise(I,type,parameter) 说明:J=imnoise(I,type) 返回对图像I 添加典型噪声后的有噪图像J ,参数type 和parameter 用于确定噪声的类型和相应的参数。 3. 图像滤波的Matlab 实现 3.1 conv2 函数 功能:计算二维卷积

MATLAB自定义函数及局部变量.docx

MATLAB 口定义函数及局部变量 2009-11-20 09:17 在开始学习MATLAB的时候并没有发现这个软件有着这么强大的功能,随着课题的不断深入,也在逼迫着自己不断的去应用新的公式并开发新的算法,这就牵涉到了如何在MATLAB中口定义函数的问题,随之而来口然就是所有编程语言所面临的问题,函数调用、局部变量等等。下面就我自己整理的一些心得与大家交流。希望对你也有所帮助。 1、编写自定义函数时尽量分以下四部分: (1)函数定义行:function[outl, out2,.. ]=filcname (ini, in2,..),输入和输岀参数个数分别由nargin和nargout两个MATLAB保留的变量来给岀。 (2)第一行帮助行,以%开头,作为1 ookfor指令搜索的行 (3)函数体说明及有关注解:以(%)开头,用以说明函数的作用及有关内容。如果不希望显示某段信息,可在它的前面加空行 (4)函数体:函数体内使用的除返回和输入变量这些在function语句屮直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会口动在MATLAB的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。 例如卜?血就是一个标准的口字义函数。 function A=myhilb(n, m) % MYH1LB是一个示范性的M-function? % A=MYHILB(N, M)会生成一个NXM 的Hilbert 矩阵 A. % A二MYHILB(N)会生成一个NXN 的Hilbert 矩阵. % MYI1ILB(N,M)仅仅显示一个II订bert矩阵,而不会返冋任何矩阵。 %这些内容在用help时不会显示 if nargout>l, error Too many output arguments.') ; end if nargin=l, m=n; el seif nargin=0 nargin>2 error Wrong number of iutput arguments.');

matlab基本运算与函数

1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter 键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为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。 > 小整理:MATLAB常用的三角函数 sin(x):正弦函数

Matlab7操作大全

A 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 b bar二维直方图 bar3三维直方图 bar3h三维水平直方图 barh二维水平直方图 base2dec X进制转换为十进制 bin2dec二进制转换为十进制blanks创建空格串 bone蓝色调黑白色图阵 box框状坐标轴 break while或for环中断指令brighten亮度控制 C c

capture(3版以前)捕获当前图形 cart2pol直角坐标变为极或柱坐标 cart2sph直角坐标变为球坐标 cat串接成高维数组 caxis色标尺刻度 cd指定当前目录 cdedit启动用户菜单、控件回调函数设计工具cdf2rdf复数特征值对角阵转为实数块对角阵ceil向正无穷取整 cell创建元胞数组 cell2struct元胞数组转换为构架数组 celldisp显示元胞数组内容 cellplot元胞数组内部结构图示 char把数值、符号、内联类转换为字符对象chi2cdf分布累计概率函数 chi2inv分布逆累计概率函数 chi2pdf分布概率密度函数 chi2rnd分布随机数发生器 chol Cholesky分解 clabel等位线标识 cla清除当前轴 class获知对象类别或创建对象 clc清除指令窗 clear清除内存变量和函数 clf清除图对象 clock时钟 colorcube三浓淡多彩交叉色图矩阵 colordef设置色彩缺省值 colormap色图 colspace列空间的基 close关闭指定窗口 colperm列排序置换向量 comet彗星状轨迹图 comet3三维彗星轨迹图 compass射线图 compose求复合函数 cond(逆)条件数 condeig计算特征值、特征向量同时给出条件数condest范-1条件数估计 conj复数共轭 contour等位线 contourf填色等位线 contour3三维等位线

MATLAB函数大全(MATLAB函数总集,史上最全)

MATLAB函数大全 代充全国移动、联通、电信话费、腾讯QQ业务、网游点卡 淘宝店址:https://www.wendangku.net/doc/de6053674.html,/ 信誉至上,服务第一 A 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 b bar 二维直方图 bar3 三维直方图 bar3h 三维水平直方图 barh 二维水平直方图 base2dec X进制转换为十进制

bin2dec 二进制转换为十进制 blanks 创建空格串 代充全国移动、联通、电信话费、腾讯QQ业务、网游点卡 淘宝店址:https://www.wendangku.net/doc/de6053674.html,/ 信誉至上,服务第一 bone 蓝色调黑白色图阵 box 框状坐标轴 break while 或for 环中断指令 brighten 亮度控制 C c capture (3版以前)捕获当前图形 cart2pol 直角坐标变为极或柱坐标 cart2sph 直角坐标变为球坐标 cat 串接成高维数组 caxis 色标尺刻度 cd 指定当前目录 cdedit 启动用户菜单、控件回调函数设计工具 cdf2rdf 复数特征值对角阵转为实数块对角阵 ceil 向正无穷取整 cell 创建元胞数组 cell2struct 元胞数组转换为构架数组 celldisp 显示元胞数组内容 cellplot 元胞数组内部结构图示 char 把数值、符号、内联类转换为字符对象 chi2cdf 分布累计概率函数 chi2inv 分布逆累计概率函数 chi2pdf 分布概率密度函数 chi2rnd 分布随机数发生器 chol Cholesky分解 clabel 等位线标识 cla 清除当前轴 class 获知对象类别或创建对象 clc 清除指令窗 clear 清除内存变量和函数 clf 清除图对象 clock 时钟 colorcube 三浓淡多彩交叉色图矩阵

(完整版)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 超几何分布的随机数生成器

Matlab中插值函数汇总和使用说明.

告: Matlab中插值函数汇总和使用说明收藏 命令1 interp1 功能一维数据插值(表格查找。该命令对数据点之间计算内插值。它找出一元函数f(x在中间点的数值。其中函数f(x由所给数据决定。x:原始数据点 Y:原始数据点 xi:插值点 Yi:插值点 格式 (1yi = interp1(x,Y,xi 返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y 的内插值决定。参量x 指定数据Y 的点。 若Y 为一矩阵,则按Y 的每列计算。yi 是阶数为length(xi*size(Y,2的输出矩阵。 (2yi = interp1(Y,xi 假定x=1:N,其中N 为向量Y 的长度,或者为矩阵Y 的行数。 (3yi = interp1(x,Y,xi,method 用指定的算法计算插值: ’nearest’:最近邻点插值,直接完成计算; ’linear’:线性插值(缺省方式,直接完成计算;

’spline’:三次样条函数插值。对于该方法,命令interp1 调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式操作的函 数。命令spline 用它们执行三次样条函数插值; ’pchip’:分段三次Hermite 插值。对于该方法,命令interp1 调用函数p chip,用于对向量x 与y 执行分段三次内插值。该方法保留单调性与数据的外形; ’cubic’:与’pchip’操作相同; ’v5cubic’:在MATLAB 5.0 中的三次插值。 对于超出x 范围的xi 的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1 将对超出的分量执行外插值算法。 (4yi = interp1(x,Y,xi,method,'extrap' 对于超出x 范围的xi 中的分量将执行特殊的外插值法extrap。 (5yi = interp1(x,Y,xi,method,extrapval 确定超出x 范围的xi 中的分量的外插值extrapval,其值通常取NaN 或0。 例1 1.>>x = 0:10; y = x.*sin(x; 2.>>xx = 0:.25:10; yy = interp1(x,y,xx; 3.>>plot(x,y,'kd',xx,yy 复制代码 例2 1.>> year = 1900:10:2010;

相关文档
相关文档 最新文档