
默认分类 2007-03-15 21:26:49 阅读4106 评论8 字号:大中小 订阅
MATLAB 软件使用简介
MATLAB 是一个功能强大的常用数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。MATLAB自1984年由美国的MathWorks公司推向市场以来,历经十几年的发展和竞争,现已成为国际最优秀的科技应用软件之一。这里主要以适用于Windows操作系统的MATLAB5.3版本向读者介绍MATLAB的使用命令和内容。
一、MATLAB 的进入/退出
MATLAB 的安装成功后, 系统会在Windows【开始】菜单的【程序】子菜单中加入启动MATLAB命令的图标, 用鼠标单击它就可以启动MATLAB系统,见图2.1。
图2.1 启动MATLAB
启动MATLAB后, 屏幕上出现MATLAB命令窗口:
图2.2 MATLAB命令窗口
图2.2的空白区域是MATLAB 的工作区(命令输入区), 在此可输入和执行命令。
退出MATLAB系统像关闭Word文件一样, 只要用鼠标点击MATLAB系统集成界面右上角的关闭按钮即可。
二、 MATLAB 操作的注意事项
l 在MATLAB工作区输入MATLAB命令后, 还须按下Enter键, MATLAB才能执行你输入的MATLAB命令, 否则MATLAB不执行你的命令。
l MATLAB 是区分字母大小写的。
l 一般,每输入一个命令并按下Enter键, 计算机就会显示此次输入的执行结果。(以下用↙表示回车)。如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;”即可以达到目的。如:
x= 2 + 3 ↙ x=5
x = 2 + 3 ; ↙ 不显示结果5
l 在MATLAB工作区如果一个表达式一行写不下,可以用在此行结尾处键入三个英文句号的方法达到换行的目的。如:
q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)…
-5x+1/2-567/(x+y)
l MATLAB 可以输入字母、汉字,但是标点符号必须在英文状态下书写。
l MATLAB 中不需要专门定义变量的类型,系统可以自动根据表达式的值或输入的值来确定变量的数据类型。
l 命令行与M文件中的百分号“%”标明注释。在语句行中百分号后面的语句被忽略而不被执行,在M文件中百分号后面的语句可以用Help命令打印出来。
三、MATLAB的变量与表达式
l MATLAB的变量名
MATLAB的变量名是用一个字母打头,后面最多跟19个字母或数字来定义的。如x,y,ae3,d3er45都是合法的变量名。应该注意不要用MATLAB中的内部函数或命令名作为变量名。MATLAB中的变量名是区分大小写字母的。如在MATLAB中,ab与 Ab表示两个不同的变量。列出当前工作空间中的变量命令为
Who 将内存中的当前变量以简单形式列出;
Whos 列出当前内存变量的名称、大小、类型等信息;
Clear 清除内存中的所有变量与函数。
l MATLAB的运算符
数算符:+(加号),-(减号),*(乘号), \(左除), / (右除) , ^ (乘幂)
关系运算符:< (小于), > (大于), <= (小于等于), >= (大于等于),
= =(等于), ~= (不等于)
逻辑运算符:&(逻辑与运算), |( 逻辑或运算), ~( 逻辑非运算)
l MATLAB的表达式及语句
表达式由运算符、函数、变量名和数字组成的式子。MATLAB语句由变量、表达式及MATLAB命令组成,用户输入的语句由MATLAB 系统解释运行。MATLAB 语句的2种最常见的形式为:
形式1:表达式
形式2:变量=表达式
在第一种形式中,表达式运算后产生的结果如果为数值类型,系统自动赋值给变量ans,并显示在屏幕上。
例1:用两种形式计算 算术运算结果。
解:Matlab命令为
形式1:
5^6+sin(pi)+exp(3) ↙
ans =
1.55e+004
形式2:
a=5^6+sin(pi)+exp(3) ↙
a =
1.55e+004
如果在表达式的后面加“;”,有
a=5^6+sin(pi)+exp(3);↙
执行后不显示运算结果。
例2:已知矩阵 ,对它们做简单的关系与逻辑运算
解:Matlab命令为
A=[1,2;1,2]; ↙
B=[1,1;2,2]; ↙
C=(AC=
0 0
0 0
四、MATLAB的数据显示格式
虽然在MATLAB系统中数据的存储和计算都是双精度进行的,但MATLAB可以利用菜单或format命令来调整数据的显示格式。Format命令的格式和作用如下:
l Format|format short 5位定点表示
l Format long 15位定点表示
l format short e 5位浮点表示
l Format long e 15位浮点表示
l Format short g 系统选择5位定点和5位浮点中更好的表示
l Format long g 系统选择15位定点和15位浮点中更好的表示
l Format rat 近似的有理数的表示
l Format hex 十六进制的表示
l Format bank 用元 角分(美制)定点表示
l Format compact 变量之间没有空行
l Format loose 变量之间有空行
例3:对数 用五位定点、十五位定点以及有理数形式表示出来。
解:Matlab命令为
a=5+sin(7)format short , a ↙
a =
5.6570
format rat,a↙
a =
3117/551
format long,a↙
a =
5.65698659871879
五、MATLAB 中的常用函数
MATLAB的常用内部函数有:
表2.1 常用的三角函数
函数名称
函数功能sinx
函数名称
函数功能
sin(x)
正弦函数cosx
asin(x)
反正弦函数asinx
cos(x)
余弦函数tanx
acos(x)
反余弦函数acosx
tan(x)
正切函数cotx
atan(x)
反正切函数atanx
cot(x)
余切函数cotx
acot(x)
反余切函数acotx
sec(x)
正割函数secx
asec(x)
反正割函数asecx
sinh(x)
双曲函数sinhx
asinh(x)
反双曲函数asinhx
表2.2 常用的计算函数
函数名称
函数功能
abs(x)
求变量x绝对值|x|
angle(x)
复数x的相角
sqrt(x)
求变量x的算术平方根
real(x)
求复数x的实部
image(x)
求复数x的虚部
conj(x)
求复数x的共轭复数
round(x)
四舍五入至最近整数
fix(x)
无论正负,舍去小数至最近整数
ceil(x)
加入正小数至最近整数
floor(x)
舍去正小数至最近整数
rat(x)
将实数化为分数表示
rats(x)
将实数化为多项分数表示
sign(x)
符号函数
rem(x,y)
求x除以y的余数
(x,y)
整数x和y的最大公因数
lcm(x,y)
整数x和y的最小公倍数
exp(x)
自然指数
pow2(x)
2的指数
log(x)
自然对数lnx
log2(x)
以2为底的对数
log10(x)
以10为底的对数
六、矩阵的操作
MATLAB的基本单位是矩阵,它是的MATLAB精髓,掌握矩阵的输入、各种数值运算以及矩阵函数的使用是以后能否学好MATLAB的关键。
l 矩阵的输入
I. 直接输入创建矩阵
输入方法是先键入左方括弧“[”,然后按行直接键入矩阵的所有元素,最后键入右方括弧“]”。注意:整个矩阵以“[”和“ ]”作为首尾,同行的元素用“,”或空格隔开,不同行的元素用“;”或按Enter键来分隔;矩阵的元素可以为数字也可以为表达式,如果进行的是数值计算,表达式中不可包含未知的变量。
例4:直接输入创建矩阵
解:Matlab命令为
A = [1,2,3; 4,15,60; 7,8,9] ↙
A =
1 2 3
4 15 60
7 8 9
或用Matlab命令
A=[1,2,3↙
4,15,66↙
7,8,9] ↙
A =
1 2 3
4 15 60
7 8 9
II. 用矩阵函数来生成矩阵
MATLAB 提供了大量的函数来创建一些特殊的矩阵,表2.3给出MATLAB常用的矩阵函数。
表2.3 常用的矩阵函数
函数名称
函数功能
函数名称
函数功能
zero(m,n)
m行n列的零矩阵
eig(A)
求矩阵A的特征值
eye(n)
n阶方矩阵
poly(A)
求矩阵A的特征多项式
ones(m,n)
m行n列的元素为1的矩阵
trace(A)
求矩阵A的迹
rand(m,n)
m行n列的随机矩阵
cond(A)
求矩阵A的条件数
randn(m,n)
m行n列的正态随机矩阵
rref(A)
求矩阵A的行最简形
magic(n)
n阶魔方矩阵
inv(A)
求矩阵A的逆矩阵
hess(A)
hess 矩阵
det(A)
求矩阵A的行列式
sqrtm(A)
求矩阵A的平方根
expm(A)
求矩阵A的指数值
funm(A)
按矩阵计算的函数值
logm(A)
求矩阵A的对数值
rank(A)
求矩阵A的秩
morm(A,1)
求矩阵A的范数
例5:输入矩阵 。
解:Matlab命令为
ones(3) ↙ %生成元素都为1的3阶方阵
ans =
1 1 1
1 1 1
1 1 1
例6:输入矩阵
解:Matlab命令为
zeros(2,5) ↙ %生成元素都为0的2行5列零矩阵
ans =
0 0 0 0 0
0 0 0 0 0
例7:生成3阶魔方矩阵。
解:Matlab命令为
magic(3) ↙
ans =
8 1 6
3 5 7
4 9 2
l 操作符“:”的说明
j:k 表示步长为1的等差数列构成的数组:[j, j+1, j+2,…, k]
j:i:k 表示步长为i的等差数列构成的数组:[j,j+i,j+2*i,…, k]
A(i:j) 表示A(i),A(i+1),…,A(j)
例8:操作符冒号”:”的应用
解:Matlab命令为
1:5 ↙ %步长为1的等差数列。
Ans =
1 2 3 4 5
1:2:7 ↙ %步长为2的等差数列。
Ans =
1 3 5 7
8:-2:0 ↙ %步长为-2的等差、递减数列。
Ans =
8 6 4 2 0
l 对矩阵元素的操作
设A是一个矩阵,则在MATLAB中有如下符号表示它的元素:
A(i,j) 表示矩阵A的第i行第j列元素。
A(:,j) 表示矩阵A的第j列。
A(i,:) 表示矩阵A的第i行。
A(:,:) 表示A的所有元素构造2维矩阵
A(:) 表示以矩阵A的所有元素按列做成的一个列矩阵。
A(i) 表示矩阵A(:)的第i个元素。
[ ] 表示空矩阵
I. 元素的抽取与赋值
例9:已知矩阵 ,抽取与修改矩阵A的一些元素.
解:Matlab命令为
A=[1 23 56;sin(3) 7 9;log(2) 6 1] ↙ %输入矩阵A。
A =
1.0000 23.0000 56.0000
0.1411 7.0000 9.0000
0.6931 6.0000 1.0000
A(2,3) ↙ %求矩阵A的第二行第三列元素。
ans =
9
A(4) ↙ %求矩阵A的第四个元素。
ans =
23
A(2:4) ↙ %取矩阵A的A(2),A(3),A(4)。
ans =
0.1411 0.6931 23.0000
A(1,:) ↙ %取矩阵A的第一行。
ans =
1 23 56
A(:,3) %取矩阵A的第三列
ans =
56
9
1
a=A(1,3) ↙ %把矩阵A的第一行第三列元素赋值给变量a。
a =
56
A(2,1)=100 ↙ %把矩阵A的第二行第一列元素修改为100。
A =
1.0000 23.0000 56.0000
100.0000 7.0000 9.0000
0.6931 6.0000 1.0000
II. 矩阵的扩充
例10:已知矩阵 ,利用A与B生成矩阵 ,
, 。
解:Matlab命令为
A=[1,3;6,9]; %输入矩阵A
C= A↙
C(1,3)=100; %把矩阵A扩充为1行3列矩阵
C ↙
C =
1 3 100
6 9 0
B=[1,5;0,8]; ↙ %输入矩阵B
D=[A,B] ↙ %由矩阵A与B合成矩阵D
D =
1 3 1 5
6 9 0 8
AA=[A,zeros(2);zeros(2),B] ↙ %由矩阵A与B合成分块矩阵AA
AA =
1 3 0 0
6 9 0 0
0 0 1 5
0 0 0 8
III.矩阵的部分删除
例11:已知矩阵 ,删除矩阵A的第一行。
解:Matlab命令为
A=[1 23 56;sin(3) 7 9;log(2) 6 1]; ↙
A(1,:)=[] ↙ %删除矩阵A的第一行
A =
0.1411 7.0000 9.0000
0.6931 6.0000 1.0000
l 矩阵的运算
A+B: 矩阵加法
A-B: 矩阵减法
A*B: 矩阵乘法
A\\B: 矩阵的左除
A/B: 矩阵的右除
transpose(A)或A’:A的转置
:数k乘以A
det(A): A的行列式:
rank(A):A的秩
七、数组
在MATLAB中数组就是一行或者一列的矩阵,前边介绍的对矩阵输入、修改、保存都适用于数组,同时MATLAB还提供了一些创建数组的特殊指令。
l 特殊数组的创建
linspace(a,b,n) 给出区间[a,b]的n个等分点数据
logspace(a,b,n) 给出区间 的n个等比点数据,公比为 。
例12:linspace(0,1,6) ↙ %给出区间[0,1] 的6个等分点数据
ans =
0 0.2000 0.4000 0.6000 0.8000 1.0000
logspace(0,1,6) ↙ %给出区间 的6个等比点数据,公比为
ans =
1.0000 1.5849 2.5119 3.9811 6.3096 10.0000
l 数组运算
数组的运算除了作为1×n的矩阵应遵循矩阵的运算规则外,MATLAB中还为数组提供了一些特殊的运算: 乘法为:.* ,左除为:.\\ ,右除为:./ ,乘幂为:.^ 。
设数组 , ,则对应的运算具体为:
例13:数组运算例题
a=1:5 ↙ %定义数组a
a =
1 2 3 4 5
b=3:2:11 ↙ %定义数组b
b =
3 5 7 9 11
a.^2↙ %数组a的每一个元素求平方
ans =
1 4 9 16 25
a.*b↙ %数组a的每一个元素乘以对应的数组b的元素
ans =
3 10 21 36 55
例14:计算 的值。
解:Matlab命令为
x=-pi:pi/2:pi; ↙ %定义自变量x
y=sin(x) ↙ %求自变量x的每一个元素对应的正弦值
y =
-0.0000 -1.0000 0 1.0000 0.0000
八、M文件
M文件有两种形式:命令文件和M函数文件。它们都是由若干MATLAB语句或命令组成的文件。两种文件的扩展名都是.m。要注意的是M文件名一定以字母开头,而且最好不要与内置函数重名。
在M文件中,当表达式后面接分号时,表达式的计算结果虽不显示但中间结果仍保存在内存中。若程序为命令文件,则程序执行完以后,中间变量仍予以保留;若程序为函数文件,则程序执行完以后,中间变量被全部删除。
l 文件的操作
为叙述方便,用记号“主菜单名|子菜单名|...”来指示子菜单。例如File|set path 表示单击file主菜单后再选择其中的子菜单set path。
MATLAB 对文件的打开、关闭和保存等操作与Word完全类似,在此不再说明。在MATLAB中新建M文件的操作是在命令窗口中选择File|New|M-File (见图2.3),然后用鼠标单击M-File,可以打开MATLAB自带的“M函数与M文件编辑器”(见图2.4),用户就可以在此编辑窗口来编辑一个新的M文件了。MATLAB自带的M函数与M文件编辑器还可以用来对已经存在的M文件进行编辑、存储、修改和读取。
图2.3 新建M文件
图2.4 M函数与M文件编辑器(编辑窗口)
l 命令文件
命令文件的一般形式为: 如a1.m, pp.m等都是合法的M文件名。 M文件有两种运行方式:一是在命令窗口直接写文件名,按Enter键; 二是在编辑窗口打开菜单Tools,再单击Run。M文件保存的路径一定要在搜索路径上,否则M文件不能运行。以下例题中如果不做特别说明,都是以第一种方式运行的。 例15:用M命令文件画出衰减振荡曲线 及其它的包络线 。 的取值范围是 。 解:步骤: 1.打开MATLAB命令窗口,单击File|New|Mfile(见图2-3)打开编辑窗口; 2.在编辑窗口逐行写下列语句; t=0:pi/50:4*pi; y0=exp(-t/3); y=exp(-t/3).*sin(3*t); plot(t,y,'-r',t,y0,':b',t,-y0,':b') 3.保存M文件,并且保存在搜索路径上,文件名为a1.m; 4.运行M文件。在命令窗口写a1,并按Enter键,或者在编辑窗口打开菜单Tools,在选择Run。 图 2.5 衰减振荡曲线与包络 l M函数文件 M函数文件的一般形式为: function <因变量>=<函数名>(<自变量>) M函数文件可以有多个因变量和多个自变量,当有多个因变量时用[]括起来。为了更好的理解函数文件,请看下例: 例16:设可逆方阵为A,编写同时求 的M函数文件。 解:步骤: 1.打开MATLAB命令窗口,单击File|New|Mfile(见图2-3)打开编辑窗口; 2.在编辑窗口逐行写下列语句; function [da,a2,inva,traa]=comp4(x) %M函数文件comp4.m同时求矩阵x的四个值 %da为矩阵x的行列式 %a2为矩阵x的平方 %inva为矩阵x的逆矩阵 %traa为矩阵x的转置 da=det(x) a2=x^2 inva=inv(x) traa=x' 3.保存M函数文件,并且保存在搜索路径上,文件名为comp4.m; 4. 命令窗口执行下列语句: A=[1,2;5,8];↙ %输入矩阵A。 comp4(A)↙ %调用comp4.m函数计算矩阵A的 。 da = -2 a2 = 11 18 45 74 inva = -4.0000 1.0000 2.5000 -0.5000 traa = 1 5 2 8 九、程序设计语句 l for循环 for循环的语句为: for i=表达式 可执行语句1 ………….. 可执行语句n end 说明:(1)表达式是一个向量,可以是m:n,m:s:n,也可以是字符串、字符串矩阵等。 (2) for循环的循环体中,可以多次嵌套for和其它的结构体。 例17:利用for循环求1~100的整数之和。 解:(1). 建立命令文件exam1.m。 %利用for循环求1~100的整数之和 sum=0; for i=1:100 sum=sum+i; end sum (2) 执行命令文件exam1.m。 exam1↙ sum = 5050 例18:利用for循环找出100~200 之间的所有素数。 解: (1).建立命令文件exam2.m。 %利用for循环找出100~200 之间的所有素数 disp('100~200 之间的所有素数为:') for m=100:200 k=fix(sqrt(m)); %求m的算术平方根然后取整. for i=2:k+1 if rem(m,i)==0 %求整数m与i的余数 break; end end if i>=k+1 disp(int2str(m)) %以字符串的形式显示素数. end end (2) 执行命令文件exam2.m。 exam2↙ 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 说明:break语句能在for循环和while循环中退出循环,继续执行循环后面的命令。 l while循环 while循环的语句为: while 表达式 循环体语句 end 说明:表达式一般是由逻辑运算和关系运算以及一般的运算组成的表达式,以判断循环要继续进行还是要停止循环。只要表达式的值非零,即为逻辑为“真“,程序就继续循环,只要表达式的值为零就停止循环。 例19:利用while循环来计算1!+2!+¼+50!的值。 解: (1).建立命令文件exam3.m %利用while循环来计算1!+2!+...+50!的值 sum=0; i=1; while i<51 prd=1; j=1; while j<=i prd=prd*j; j=j+1; end sum=sum+prd; i=i+1; end disp(‘1!+2!+...+50!的和为:’) sum (2) 执行命令文件exam3.m。 exam3↙ 1!+2!+...+50!的和为: sum = 2.5613e+018 l if-else-end分支 此分支结构有3种形式: (1) if 表达式 执行语句 end 功能:如果表达式的值为真,就执行语句,否则执行end后面的语句. (2) if 表达式 执行语句1 else 执行语句2 end 功能:如果表达式的值为真,就执行语句1,否则执行语句2. (3) if 表达式1 执行语句1 elseif 表达式2 执行语句2 else 语句n end 功能:如果表达式1的值为真,就执行语句1,然后跳出if执行语句;否则判断表达式2,如果表达式2的值为真,就执行语句2,然后跳出if执行语句.否则依此类推,一直进行下去.如果所有的表达式的值都为假,就执行end后面的语句. 例19:编一函数计算函数值: 解:(1).建立M函数文件yx.m。 function y=yx(x) if x<1 y=x elseif x>=1 & x<=10 y=2*x-1 elseif x>10 & x<=30 y=3*x-11 else y=sin(x)+log(x) end (2).调用M函数文件计算 。 result=[yx(0.2),yx(2),yx(30),yx(10*pi)]↙ result = 0.2000 3.0000 79.0000 3.4473 l switch-case-end分支 Switch语句的形式为: switch 表达式 case 常量表达式1 语句块1 case 常量表达式2 语句块2 case {常量表达式n,常量表达式n+1,…} 语句块n otherwise 语句块n+1 end 功能:switch语句后面的表达式可以为任何类型;每个case后面的常量表达式可以是多个,也可以是不同类型;与if语句不同的是,各个case 和otherwise 语句出现的先后顺序不会影响程序运行的结果。 例20: 编一个转换成绩等级的函数文件,其中成绩等级转换标准为考试成绩分数在[90,100]分显示优秀;在[80,90)分显示良好;在[60,80)分显示及格;在[0,60)分显示不及格。 解:(1).建立M函数文件ff.m function result=ff(x) n=fix(x/10); switch n case {9,10} disp('优秀') case 8 disp('良好') case {6,7} disp('及格') otherwise disp('不及格') end (2).调用M函数文件判断99分,56分,72分各属于哪个范围.。 ff(99) ↙ 优秀 ff(56) ↙ 不及格 ff(72) ↙ 及格 十、 Matlab绘图 1.plot(y) 功能: 画一条或多条折线图。其中y是数值向量或数值矩阵。 说明:当y是数值向量时,plot(y)在坐标系中顺序的用直线段连接顶点(i,y(i))画出一条折线图;当y是数值矩阵时,Matlab为矩阵的每一列画出一条折线,绘图时,以矩阵y每列元素的相应行下标值为横坐标,以y的元素为纵坐标绘制的连线图。 例21:画出向量[1,3,2,9,0.5]折线图。 解:MATLAB命令为 y=[1,3,2,9,0.5]; ↙ plot(y) ↙ 图2.6向量式图形 2. plot(x,y) 功能:画一条或多条折线图。其中x可以是长度为n的数值向量或是n´m的数值矩阵,y 也可以是长度为n的数值向量或是n´m的数值矩阵。 说明: ¬当x ,y 都是长度为n的数值向量时,plot(x,y)在坐标系中顺序的用直线段连接顶点(x(i),y(i))画出一条折线图; 当x 是长度为n的数值向量且y是n´m的数值矩阵时,plot(x,y)用向量x分别与矩阵y的每一列匹配, 在同一坐标系中绘出m条不同颜色的折线图; ®当x 和y都是n´m的数值矩阵时,plot(x,y)分别用矩阵x的第i列与矩阵y的第i列匹配,在同一坐标系中绘出m条不同颜色的折线图。 注: plot(x,y)命令可以用来画通常的函数f(x)图形, 此时向量x常用命令x=a:h:b的形式获得f(x)函数在绘图区间[a,b]上的自变量点向量数据,对应的函数向量值取为y= f(x)。步长h可以任意选取,一般,步长越小,曲线越光滑,但是步长太小,会增加计算量,运算速度要降低。通常步长h取为0.1可以达到较好的绘图效果。如果想在图形中标出网格线,用命令:plot(x,y),grid on即可。 例22:画出函数y = sin x2 在-5 £ x £ 5 的图形。 解: Matlab 命令: x=-5:.1:5;↙ %取绘图横坐标向量点x y=sin(x.^2); ↙ plot(x,y),grid on↙ 图2.7曲线y=sinx^2 例23:画出椭圆 的曲线图。 解:对于这种情形,首先把它写成参数方程 。 Matlab 命令: t=0:pi/50:2*pi; ↙ x=5*cos(t); ↙ y=2*sin(t); ↙ plot(x,y) ,grid on 图2.8 椭圆 3. plot(x1,y1,x2,y2,x3,y3…) 功能:在同一图形窗口画出多条不同颜色曲线,曲线关系为 。 例24:在同一图形窗口画出三个函数y = cos 2x ,y = x 2 ,y = x的图形,-2£ x £ 2 。 解:Matlab命令: x=-2:.1:2; ↙ plot(x,cos(2*x),x,x.^2,x,x) ↙ legend('cos(2x)','x^2','x') ↙ 图2.9 例5的绘图结果 4.ezplot(F,[xmin,xmax]) 功能:画出符号函数F在区间[xmin,xmax]内的图像 说明: F是只含有一个变量的函数。如果区间[xmin,xmax]缺省,默认区间为 [-2pi,2pi] 例25:绘制 在 间的图形。 Matlab命令:syms t ↙ ezplot(‘2/3*exp(-t/2)*cos(3/2*t)’,[0,4*pi]) ↙ 图2.10 符号函数的图形 5.二维特殊图形 除了plot指令外,Matlab还提供了许多其它的二维绘图指令,这些指令大大扩充了Matlab的曲线作图指令,可以满足用户的不同需要。 表2.4绘制二维图形的指令 函数名称 功能 函数名称 功能 bar 直方图 loglog 双对数曲线 barh 垂直的直方图 semilogx x轴对数坐标曲线 bar3 三维直方图 semilogy y轴对数坐标曲线 bar3h 垂直的三维直方图 polar 极坐标曲线 hist 统计直方图 stairs 阶梯图 pie 饼图 stem 火柴棍图 pie3 三维饼图 pcolor 伪彩图 fplot 数值函数二维曲线 area 面积图 ezplot 符号函数二维曲线 errorbar 误差棒棒图 gplot 绘拓扑图 quiver 矢量场图 fill 平面多边形填色 ribbon 代状图 例26:练习指令bar,stairs,pie,pie3,stem,area. 解:Matlab命令: x=1:5; subplot(2,3,1),bar(x),title('直方图')↙ subplot(2,3,2),stairs(x),title('阶梯图')↙ subplot(2,3,3),stem(x,'rp'),title('火柴棍图')↙ subplot(2,3,4),pie(x),title('饼图')↙ subplot(2,3,5),pie3(x),title('三维饼图')↙ subplot(2,3,6),area(x),title('面积图')↙ 图2.11 一些二维特殊图形 6.三维网格命令mesh 由函数meshgrid生成格点矩阵后,就可以求出各格点对应的函数值,然后利用三维网格命令mesh与三维表面命令surf画出空间曲面。函数mesh用来生成函数的网格曲面。函数mesh 有如下三种形式: mesh(X,Y,Z) X,Y,Z是同维数的矩阵 mesh(x,y,Z) x,y是向量,而Z是矩阵。等价于 mesh(Z) 若提供参数x,y,等价于mesh(x,y,Z),否则默认x=1:n,y=1:m,其中 例27:画出函数 在-3 £ x ,y£ 3及 在-10 £ x,y £ 10上的图形。 解: (1)建立命令文件me.m %函数 z=sin(x+siny) t1=-3:.1:3; [x1,y1]=meshgrid(t1); %生成格点矩阵 z1=sin(x1+sin(y1)); %计算格点处的函数值 subplot(1,2,1),mesh(x1,y1,z1),title('sin(x+siny)') %马鞍面z=x^2-2y^2 t2=-10:.3:10; [x2,y2]=meshgrid(t2);z2=x2.^2-2*y2.^2; subplot(1,2,2),mesh(x2,y2,z2),title('马鞍面') (2)执行命令文件me.m me↙ 图2.12函数z = sin (x+sin y)与马鞍面的网格图
