MATLAB函数.docx
- 文档编号:27959028
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:15
- 大小:23.68KB
MATLAB函数.docx
《MATLAB函数.docx》由会员分享,可在线阅读,更多相关《MATLAB函数.docx(15页珍藏版)》请在冰豆网上搜索。
MATLAB函数
1.input函数:
用于向计算机输入一个参数。
调用格式:
A=input(提示信息,选项);
注:
‘s’选项,则允许用户输入一个字符串。
例如想输入一个人的姓名,可采用命令
xm=input('What''syourname:
','s')
2.pause函数:
暂停程序的执行。
调用格式:
pause(延迟秒数)
注:
如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。
3.disp函数:
命令窗口输出函数。
调用格式:
disp(输出项)
注:
输出项为字符串或矩阵。
例如
A='Hello,MATLAB';
disp(A)
输出为:
Hello,MATLAB
4.setstr在matlab中是什么意思?
setstr将ASCII码转换成字符串,这个函数的别的语言里也是有的,在MATLAB里现在推荐用char函数来完成这个功能
另外,abs可以将字符串转换成ASCII码
例如:
setstr(abs(c)+1);
5.if语句
格式一:
if 条件
语句组
end
格式二:
if 条件
语句组1
else
语句组2
end
格式三:
if 条件1
语句组1
elseif 条件2
语句组2
……
elseif 条件m
语句组m
else
语句组m+1
end
6 switch语句
switch语句根据变量或表达式的取值不同,分别执行不同的语句。
其格式为:
switch 表达式
case 值1
语句组1
case 值2
……
case 值m
语句组m
otherwise
语句组m+1
end
实现循环结构的语句:
for语句和while语句。
7. for语句:
格式:
for循环变量=表达式1:
表达式2:
表达式3
循环体语句
end
注:
其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。
步长为1时,表达式2可以省略
8.while语句
格式为:
while(条件)
循环体语句
end
9rem:
求余函数
10.文件的打开与关闭
‘r’ 打开文件,读数据,文件必须存在。
‘w’ 打开文件,写数据,若文件不存在,系统会自动建立。
‘a’ 打开文件,在文件末尾添加数据。
‘r+’ 打开文件,可以读和写数据,文件必须存在。
‘w+’ 打开文件,供读与写数据用。
‘a+’ 打开文件,供读与添加数据用。
例如:
打开一个名为std.dat的数据文件并进行读操作,其命令格式为:
Fid=fopen(‘std.dat’,’r’)
上述打开格式均为二进制格式,如果想用ASCII文本格式,则必须在格式字符串中加上字符t,例如用’rt’表示以ASCII格式打开供读操作的数据文件。
11.fclose关闭文件
关闭文件命令格式为:
Sta=fclose(Fid) 关闭Fid所表示的文件
Sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回–1。
【例1】建立一数据文件test.dat,用于存放矩阵A的数据。
已知 A=[-0.6515 -0.2727 -0.4354 -0.3190 -0.9047
-0.7534 -0.4567 -0.3212 -0.4132 -0.3583
-0.9264 -0.8173 -0.7823 -0.3265 -0.0631
-0.1735 -0.7373 -0.0972 -0.3267 -0.6298
-0.4768 -0.6773 -0.6574 -0.1923 -0.4389]
Fid=fopen('test.dat','w')
cnt=fwrite(Fid,A,'float')
fclose(Fid)
程序段将矩阵A的数据以二进制浮点数格式写入文件test.dat中。
Fid=fopen('test.dat','r')
[B,cnt]=fread(Fid,[5,inf],'float')
fclose(Fid)
读取文件test.dat的内容。
12.文本文件
s=fscanf(fid,‘%s’) 读取一个字符串
a=fscanf(fid,‘%5d’) 读取5位数的整数
13、plot函数
函数格式:
plot(x,y) 其中x和y为坐标向量
函数功能:
以向量x、y为轴,绘制曲线。
【例1】在区间0≤X≤2内,绘制正弦曲线Y=SIN(X),其程序为:
x=0:
pi/100:
2*pi;
y=sin(x);
plot(x,y)
【例2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:
x=0:
pi/100:
2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2)
plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。
【例3】用不同线型和颜色重新绘制例4.2图形,其程序为:
x=0:
pi/100:
2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,'go',x,y2,'b-.')
其中参数'go'和'b-.'表示图形的颜色和线型。
g表示绿色,o表示图形线型为圆圈;b表示蓝色,-.表示图形线型为点划线。
14.
title(‘加图形标题');
xlabel('加X轴标记');
ylabel('加Y轴标记');
text(X,Y,'添加文本');
15.
axis([xminxmaxyminymax])设定最大和最小值
例:
x=linspace(0,2*pi,60);生成含有60个数据元素的向量X
例:
axis([02*pi-22]);
16.
加图例
legend('图例说明','图例说明');
例:
x=0:
pi/100:
2*pi;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2,'--');
legend('sin(x)','cos(x)');
17.在数学中是没有矩阵除法运算的,Matlab中的除法运算为其自己定义:
除法分左除和右除,我们设两个矩阵A、B。
则:
A\B为A左除B,相当于A的逆左乘B,即inv(A)*B。
A/B为A右除B,相当于A的逆右乘B,即B*inv(A)。
18.subplot(m,n,p)
该命令将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。
x=linspace(0,2*pi,60);
y=sin(x);
z=cos(x);
t=sin(x)./(cos(x)+eps);eps为系统内部常数
ct=cos(x)./(sin(x)+eps);
subplot(2,2,1);分成2×2区域且指定1号为活动区
plot(x,y);
title('sin(x)');
axis([02*pi-11]);
subplot(2,2,2);
plot(x,z);
title('cos(x)');
axis([02*pi-11]);
subplot(2,2,3);
plot(x,t);
title('tangent(x)');
axis([02*pi-4040]);
subplot(2,2,4);
plot(x,ct);
title('cotangent(x)');
axis([02*pi-4040]);
19.polar(theta,rho);绘制极坐标图命令
stairs(x,y);绘制阶梯图形命令
bar(x,y);绘制条形图命令
20用set命令可以方便地设置图形对象属性,如下列程序段就是通过属性来定制图形。
x=[0:
0.1:
4*pi];
H=plot(x,sin(x));返回正弦曲线句柄H
set(H,'LineStyle','*','LineWidth',0.1);设置正弦曲线线型与线宽
其中'LineStyle'为线型属性,'LineWidth'为线宽属性。
21.零矩阵
zeros(m):
产生m m阶零矩阵;
zeros(m,n):
产生m n阶零矩阵,当m=n时等同于zeros(m);
zeros(size(A)):
产生与矩阵A同样大小的零矩阵。
幺矩阵:
所有元素值为1的矩阵称为幺矩阵。
幺矩阵可以用ones函数实现。
它的调用格式与zeros函数一样。
单位矩阵:
主对角线的元素值为1、其余元素值为0的矩阵称为单位矩阵。
它可以用MATLAB内部函数eye建立,使用格式与zeros相同。
数量矩阵:
主对角线的元素值为一常数d、其余元素值为0的矩阵称为数量矩阵。
显然,当d=1时,即为单位矩阵,故数量矩阵可以用eye(m)*d或eye(m,n)*d建立。
对角阵:
对角线的元素值为常数、其余元素值为0的矩阵称为对角阵。
我们可以通过MATLAB内部函数diag,利用一个向量构成对角阵;或从矩阵中提取某对角线构成一个向量。
使用
格式为diag(V)和diag(V,k)两种。
用一个向量V构成一个对角阵:
diagonal(对角线)
设V为具有m个元素的向量,diag(V)将产生一个mm阶对角阵,其主对角线的元素值即为向量的元素值;diag(V,k)将产生一个nn(n=m+|k|,k为一整数)阶对角阵,其第k条对角线的元素值即为向量的元素值。
注意:
当k>0,则该对角线位于主对角线的上方第k条;当k<0,该对角线位于主对角线的下方第|k|条;当k=0,则等同于diag(V)。
用diag建立的对角阵必是方阵。
从矩阵中提取某对角线
我们也可以用diag从矩阵中提取某对角线构成一个向量。
设A为m n阶矩阵,diag(A)将从矩阵A中提取其主对角线产生一个具有min(m,n)个元素的向量。
diag(A,k)的功能是:
当k>0,则将从矩阵A中提取位于主对角线的上方第k条对角线构成一个具有n-k个元素的向量;当k<0,则将从矩阵A中提取位于主对角线的下方第|k|条对角线构成一个具有m+k个元素的向量;当k=0,则等同于diag(A)。
22.MATLAB提供的内部函数eig可以用来计算特征值与特征向量
(1)E=eig(A):
由eig(A)返回方阵A的N个特征值,构成向量E;
(2)[V,D]=eig(A):
由eig(A)返回方阵A的N个特征值,构成NN阶对角阵D,其对角线上的N个元素即为相应的特征值,同时将返回相应的特征向量赋予NN阶方阵V的对应列,且A、V、D满足AV=VD;
(3)[V,D]=eig(A,’nobalance’):
本格式的功能与格式
(2)一样,只是格式
(2)是先对A作相似变换(balance),然后再求其特征值与相应的特征向量;而本格式则事先不作相似变换;
23.MATLAB提供的内部函数det用来计算矩阵的行列式的值。
设矩阵A为一方阵(必须是方阵),求矩阵A的行列式值的格式为:
det(A)。
24.inv函数求方阵A的逆阵
25.MAX函数的命令格式有:
[Y,I]=max(X):
将max(X)返回矩阵X的各列中的最大元素值及其该元素的位置赋予行向量Y与I;当X为向量时,则Y与I为单变量。
[Y,I]=max(X,[],DIM):
按数组X的第DIM维的方向查取其最大的元素值及其该元素的位置赋予向量Y与I。
26.例:
x=[456;148]
y=[175;457]
p=max(x,y) %在x,y同一位置上的两个元素中查找出最大值
27.求中值
所谓中值,是指在数据序列中其值的大小恰好在中间。
例如,数据序列9,-2,5,7,12的中值为7。
MEDIAN函数调用的命令格式有:
Y=median(X):
将median(X)返回矩阵X各列元素的中值赋予行向量Y。
若X为向量,则Y为单变量。
Y=median(X,DIM):
按数组X的第DIM维方向的元素求其中值赋予向量Y。
若DIM=1,为按列操作;若DIM=2,为按行操作。
若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。
28、求和
命令格式有:
Y=sum(X):
将sum(X)返回矩阵X各列元素之和赋予行向量Y;若X为向量,则Y为单变量。
Y=sum(X,DIM):
按数组X的第DIM维的方向的元素求其和赋予Y。
若DIM=1,为按列操作;若DIM=2,为按行操作。
若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。
29.求平均值
MEAN函数调用的命令格式有:
Y=mean(X):
将mean(X)返回矩阵X各列元素之的平均值赋予行向量Y。
若X为向量,则Y为单变量。
Y=mean(X,DIM):
按数组X的第DIM维的方向的元素求其平均值赋予向量Y。
若DIM=1,为按列操作;若DIM=2,为按行操作。
若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。
30、求积
命令格式有:
Y=prod(X):
将prod(X)返回矩阵X各列元素之积赋予行向量Y。
若X为向量,则Y为单变量。
Y=prod(X,DIM):
按数组X的第DIM维的方向的元素求其积赋予向量Y。
若DIM=1,为按列操作;若DIM=2,为按行操作。
若X为二维数组,Y为一个向量;若X为一维数组,则Y为单变量。
31.若已知多项式的全部根,则可以用POLY函数建立起该多项式;也可以用POLY函数求矩阵的特征多项式。
POLY函数是一个MATLAB程序,调用它的命令格式是:
A=poly(x)
若x为具有N个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋值给向量A。
在此种情况下,POLY与ROOTS互为逆函数;若x为N×N的矩阵x,则poly(x)返回一个向量赋值给A,该向量的元素为矩阵x的特征多项式之系数:
A
(1),A
(2),…,A(N),A(N+1)。
32.POLYVAL函数用来求代数多项式的值,调用的命令格式为:
Y=polyval(A,x)
33.多项式乘法
若A、B是由多项式系数组成的向量,则CONV函数将返回这两个多项式的乘积。
调用它的命令格式为:
C=conv(A,B)
34.多项式除法
当A、B是由多项式系数组成的向量时,DECONV函数用来对两个多项式作除法运算。
调用的命令格式为:
[Q,r]=deconv(A,B)
本命令的结果:
多项式A除以多项式B获商多项式赋予Q(也为多项式系数向量);获余项多项式赋予r(其系数向量的长度与被除多项式相同,通常高次项的系数为0)。
DECONV是CONV的逆函数,即有A=conv(B,Q)+r。
35.sym函数
sym函数的主要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。
用sym函数创建符号变量的一般格式为:
x=sym(‘x’)
其目的是将’x’创建为符号变量,以x作为输出变量名。
每次调用该函数,可以定义一个符号变量。
36.solve主要是用来求解多项式的解。
37.【例2】已知一复数表达式z=x+i*y,试求其共轭复数,并求该表达式与其共轭复数乘积的多项式。
为了使乘积表达式x^2+y^2非负,这里,把变量x和y定义为实数。
x=sym(‘x’,’real’);
y=sym(‘y’,’real’);
z=x+i*y;%定义复数表达式
conj(z);%求共轭复数
expand(z*conj(z))%求表达式与其共轭复数乘积的多项式
38.syms函数
syms函数的功能与sym函数类似。
syms函数可以在一个语句中同时定义多个符号变量,其一般格式为:
symsarg1arg2…argN
用于将rg1,arg2,…,argN等符号创建为符号型数据。
Syms格式定义变量时,变量名之间只能用空格符,不能用逗号或者分号。
39.默认符号变量
在数学表达式中,一般习惯于使用排在字母表中前面的字母作为变量的系数,而用排在后面的字母表示变量。
例如:
f=ax2+bx+c
表达式中的a,b,c通常被认为是常数,用作变量的系数;而将x看作自变量。
40..symsabcxy %定义符号变量
fxy=(a*x^2+b*y^2)/c^2; %生成符号函数
diff(fxy,x) %符号函数fxy对x求导数
ans=2*a*x/c^2
diff(fxy,y) %符号函数fxy对y求导数
ans=2*b*y/c^2 %符号函数fxy对x求积分
int(fxy,x)
ans=1/c^2*(1/3*a*x^3+b*y^2*x)
注:
syms后面跟的多个变量必须用空格或者分号隔开。
41求极限
limit(f,x,a):
求符号函数f(x)的极限值。
即计算当变量x趋近于常数a时,f(x)函数的极限值。
limit(f,a):
求符号函数f(x)的极限值。
由于没有指定符号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变量为函数findsym(f)确定的默认自变量,既变量x趋近于a。
limit(f):
求符号函数f(x)的极限值。
符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。
limit(f,x,a,'right'):
求符号函数f的极限值。
'right'表示变量x从右边趋近于a。
limit(f,x,a,'left'):
求符号函数f的极限值。
'left'表示变量x从左边趋近于a。
42.例:
MATLB中的写法:
f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/sin(x)^3
43.微分函数
diff函数用于对符号表达式s求微分。
该函数的一般引用格式为:
diff(s,’v’,n)
说明:
应用diff(s)没有指定微分变量和微分阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶微分。
应用diff(s,‘v’)或diff(s,sym(‘v’))格式,表示以v为自变量,对符号表达式s求一阶微分。
应用diff(s,n)格式,表示对符号表达式s求n阶微分,n为正整数。
应用diff(s,‘v’,n)diff(s,n,‘v’)格式,表示以v为自变量,对符号表达式s求n阶微分。
44.积分函数
积分函数int(s,v,a,b)可以对被积函数或符号表达式s求积分。
其引用格式为:
int(s,v,a,b)
说明:
应用int(s)格式,表示没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求一阶积分。
应用int(s,v)格式,表示以v为自变量,对被积函数或符号表达式s求一阶不定积分。
应用积分函数时,如果给定a、b两项,表示是进行定积分运算。
a、b分别表示定积分的下限和上限。
不指定积分的下限和上限表示求不定积分。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 函数
![提示](https://static.bdocx.com/images/bang_tan.gif)