资源描述
零、帮助
1、help命令:如help fun 显示某函数的功能和语法描述。如help sin。若单独使用help命令,则显示出帮助主题。
2、lookfor命令:如lookfor XYZ 在所有的M文件中查找XYZ关键词。
一、变量
1、Matlab区分大小写;标准函数及命令字母必须小写。
2、命令后加分号,则不显示运算结果。
3、注释以%开头。
4、预定义变量(一般不要对预定义变量进行重新赋值)
ans
计算结果的默认赋值变量
realmax
最大正实数
i、j
虚数单位
realmin
最小正实数
eps
机器零阈值
nargin
函数输入参数个数
inf
无穷大
nargout
函数输出参数个数
pi
圆周率
lasterr
存放最新的错误信息
nan
非数
lastwarn
存放最新的警告信息
5、who、whos命令:显示工作空间中的变量清单或列表。
6、clear命令:删除工作空间中的变量。
7、较大矩阵数值的输入:在命令窗口中向一个新变量赋空阵,在工作空间窗口中双击该变量,打开变量编辑器,填表即可。
8、save命令:把一些变量存储到磁盘文件(.mat),文件名中不能出现后缀。
9、load命令:将文件中的变量调入内存。
10、单个数据的算术运算只是矩阵运算的特例。
11、常用算术运算符:+ - * / \ ^ ( )
12、关系运算符:< <= > >= == ~=(不等于)
13、逻辑运算符:&(与)、|(或)、~(非)
二、常用数学函数
sin
正弦函数
exp
自然指数函数
cos
余弦函数
pow2
2的幂
tan
正切函数
abs
绝对值函数、复数的模
asin
反正弦函数
angle
复数的幅角
acos
反余弦函数
real
复数的实部
atan
反正切函数
imag
复数的虚部
sinh
双曲正弦函数
conj
复数的共轭运算
cosh
双曲余弦函数
rem
求余数或模运算
tanh
双曲正切函数
mod
模除求余
asinh
反双曲正弦函数
fix
向零方向取整
acosh
反双曲余弦函数
floor
不大于自变量的最大整数
atanh
反双曲正切函数
ceil
不小于自变量的最小整数
sqrt
平方根函数
round
四舍五入到最邻近的整数
log
自然对数函数
sign
符号函数
log10
常用对数函数
gcd
最大公因子
log2
以2为底的对数函数
lcm
最小公倍数
heaviside
单位阶跃函数
dirac
单位冲激函数
1、三角函数以弧度为单位。
2、abs函数还可求字符串的ASCII码。
3、这些函数几乎都可以针对向量或矩阵进行运算。
三、数据的输出格式
1、format命令:设置或改变数据输出的格式。其格式符如下:
short
输出小数点后4位,最多不超过7位有效数字。对于大于1000的实数,用5位有效数字的科学计数形式输出。
long
15位有效数字形式输出。
short e
5位有效数字的科学计数形式输出。
long e
15位有效数字的科学计数形式输出。
short g
从short和short e中自动选择最佳输出方式。
long g
从long和long e中自动选择最佳输出方式。
rat
近似有理数表示。
hex
十六进制表示。
+
正数、负数、零分别用+、-、空格表示。
bank
银行格式,元、角、分表示。
compact
输出变量之间没有空行。
loose
输出变量之间有空行。
四、矩阵运算(向量是特殊的矩阵)
1、直接输入法建立矩阵:矩阵元素用方括号括起来,按矩阵行顺序输入各元素,同一行各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。如:A=[1,2,3;4,5,6]
2、利用.m文件建立矩阵:即将矩阵的赋值命令写入到一个.m文件中,并运行该文件。
3、利用冒号表达式建立一个向量:A=e1:e2:e3 其中,e1为初始值、e2为步长、e3为终止值。e2可省略,如A=e1:e3,则步长为1。
4、linspace函数:也可产生一个行向量,如A=linspace(a,b,n) 其中,a为第1个元素,b为最后一个元素,n为元素总数。n可省略,默认产生100个元素。
5、利用已建好的矩阵建立更大的矩阵:如:A=[B,C;C,B]。
6、矩阵元素的引用:如A(3,2)=200 即对矩阵A的第3行第2列的元素赋值为200。若赋值时给出的下标超出范围,则将对A进行扩展,扩展后的未赋值矩阵元素置0。
7、矩阵按列存储。矩阵元素也可按序号进行引用,如A(2)=100。
8、size函数:如[l,c]=size(A),返回两个元素的向量,分别是矩阵A的行数和列数。
9、sub2ind函数:如sub2ind(size(A),l,c),返回矩阵A的第l行第c列元素的序号。
10、ind2sub函数:如[l,c]=ind2sub(size(A),n),返回矩阵A中序号为n的元素的行列下标值。
11、length函数:如length(A) 返回矩阵A的行数和列数中的较大者。
12、ndims函数:如ndims(A) 返回A的维数。
13、利用冒号表达式获得子矩阵
① 如A(a,:) 表示矩阵A的第a行的全部元素。
② 如A(:,b) 表示矩阵A的第b列的全部元素。
③ 如A(a:b,:) 表示矩阵A的第a行至第b行的全部元素。
④ 如A(:,a:b) 表示矩阵A的第a列至第b列的全部元素。
⑤ 如A(a:b,c:d) 表示矩阵A的第a行至第b行内的且在第c列至第d列中的所有元素。
⑥ 如A(end,:) 表示矩阵A的最后一行的全部元素。
⑦ 如A([a,b],c:end) 表示矩阵A的第a和第b两行中第c列至最后一列的全部元素。
14、A(:) 将矩阵A的每一列元素堆叠起来,成为一个列向量。
15、空矩阵:如A=[]
16、利用空矩阵删除矩阵元素:如A(:,[a,b])=[] 即删除矩阵A的第a列和第b列元素。
17、reshape函数:如reshape(A,m,n) 在矩阵A总元素个数保持不变的前提下,将矩阵A重新排成m行n列的矩阵。该函数不改变矩阵元素个数和存储结构。
18、通用的特殊矩阵
① zeros函数:产生全0矩阵,即零矩阵。
② ones函数:产生全1矩阵,即幺矩阵。
③ eye函数:产生单位矩阵。
④ rand函数:产生0到1之间均匀分布的随机矩阵。
⑤ randn函数:产生均值为0、方差为1的标准正态分布随机矩阵。
⑥ 以上函数的用法类似,如zeros(n)产生n行n列的零矩阵、zeros(m,n)产生m行n列的零矩阵。
⑦ 如a+(b-a)*rand(n) 即在区间[a,b]内均匀分布的产生n阶随机矩阵。
⑧ 如a+sqrt(b)*randn(n) 即产生均值为a、方差为b的n阶正态分布随机矩阵。
19、专门的特殊矩阵
① magic函数:如magic(n) 产生n阶魔方矩阵。
② vander函数:如vander(V) 产生以向量V为基础向量的范德蒙矩阵。
③ hilb函数:如hilb(n) 产生n阶希尔伯特矩阵。
④ invhilb函数:如invhilb(n) 产生n阶希尔伯特矩阵的逆矩阵。
⑤ toeplitz函数:如toeplitz(C,R) 产生以向量C为第1列,向量R为第1行的托普利兹矩阵;如toeplitz(C) 产生以向量C生成的对称托普利兹矩阵。
⑥ compan函数:如compan(P) 产生多项式的伴随矩阵,P为多项式的系数向量。
⑦ pascal函数:如pascal(n) 产生n阶帕斯卡矩阵。
20、矩阵基本算术运算
① 加减:如C=A+B、C=A-B 其中,A与B同维;另外,A或B也可以是标量。
② 乘法:如C=A*B 其中,A或B也可以是标量。
③ 除法:如C=A\B(左除,相当于A的逆左乘B)、C=A/B(右除,相当于B的逆右乘A),其中,A或B也可以是标量。
④ 幂:如C=A^x 其中,x是一个数(可以是复数)。
21、点运算:在有关的算术运算符前面加点,表示两个矩阵对应元素进行相关运算,要求两个矩阵同维。如:C=A.*B、C=A./B、C=A.^x、C=A.^B(A与B同维)、C=x.^A(x为标量,A为矩阵)
22、函数运算:如C=sin(A) A为矩阵,则对A的每一个元素求其正弦值,运算结果是与A同维的矩阵(或向量)。
23、关系运算
① 运算符:< <= > >= == ~=(不等于)。
② 1表示真、0表示假。
③ 如:C=A<B、C=A~=B 其中,A与B同维,且相同位置的对应元素进行关系运算,结果C为0、1矩阵。
④ 参加运算的A或B也可以是标量。
24、逻辑运算
① 运算符:&(与)、|(或)、~(非)。
② 非零元素为真,用1表示;零元素表示假,用0表示
③ 如:C=A&B、C=~A 其中,A与B同维,且相同位置的对应元素进行逻辑运算,结果C为0、1矩阵。
④ 参加运算的A或B也可以是标量。
25、关系运算与逻辑运算函数
all
若向量的所有元素非零,则结果为1
any
向量中任何一个元素非零,结果为1
exist
检查变量在工作空间中是否存在。若存在,则结果为1
find
找出向量或矩阵中非零元素的位置
isempty
若被查变量是空阵,则结果为1
isglobal
若被查变量是全局变量,则结果为1
isinf
若元素是正或负无穷大,则结果矩阵相应位置元素取1,否则取0
ifnan
若元素是非数,则结果矩阵相应位置元素取1,否则取0
isfinite
若元素值大小有限,则结果矩阵相应位置元素取1,否则取0
issparse
若变量是稀疏矩阵,则结果矩阵相应位置元素取1,否则取0
isstr
若变量是字符串,则结果矩阵相应位置元素取1,否则取0
xor
进行异或运算
如:k=find(A>4) 即变量k中存放了矩阵A中找出大于4的元素的位置;A(k) 即输出相应位置的元素值。
26、diag函数
① 如B=diag(A) 即提取矩阵A的主对角线元素,形成向量B。
② 如B=diag(A,k) 即提取矩阵A的第k条对角线元素,形成向量B。(即与主对角线平行,向上为第1条、第2条、…,向下为第-1条、第-2条、…,主对角线为第0条)
③ 如B=diag(V) 其中V是m个元素的向量,此时,产生一个m阶对角矩阵B,其主对角线元素为向量V的元素。
④ 如B=diag(V,k) 其中V是m个元素的向量,此时,产生一个(m+|k|)阶对角矩阵B,其第k条对角线元素为向量V的元素。
27、triu函数
① 如B=triu(A) 即提取矩阵A的上三角元素,形成向量B。
② 如B=triu(A,k) 即提取矩阵A的第k条对角线以上的元素,形成向量B。
28、tril函数:提取矩阵的下三角,与triu函数类似。
29、矩阵的转置:如B=A’。
30、rot90函数:将矩阵A按逆时针旋转90度的k倍。如B=rot90(A,2) 即矩阵A逆时针旋转180度。当k为1时可省略,如B=rot90(A)。
31、fliplr函数:将矩阵A进行左右翻转。如B=fliplr(A)。
32、flipud函数:将矩阵A进行上下翻转。如B=flipud(A)。
33、inv函数:求矩阵的逆。如B=inv(A) 其中A为满秩的方阵。
34、pinv函数:求矩阵的伪逆。如B=pinv(A) 其中A可以不是方阵或非满秩的方阵。
35、det函数:求方阵的行列式值。如d=det(A)。
36、rank函数:求矩阵的秩。如r=rank(A)。
37、trace函数:求矩阵的迹。如t=trace(A)。
38、norm函数:求向量或矩阵的范数。
① 如v=norm(A,1) 求向量或矩阵的1-范数。
② 如v=norm(A) 或 v=norm(A,2) 求向量或矩阵的2-范数。
③ 如v=norm(A,inf) 求向量或矩阵的无穷范数。
39、cond函数:求矩阵的条件数
① 如c=cond(A,1) 求矩阵A的1-范数下的条件数。
② 如c=cond(A) 或 c=cond(A,2) 求矩阵A的2-范数下的条件数。
③ 如c=cond(A,inf) 求矩阵A的无穷范数下的条件数。
40、eig函数:求矩阵的特征值与特征向量。
① 如E=eig(A) 求矩阵A全部特征值,形成向量E。
② 如[V,D]=eig(A) 通过对矩阵A进行相似变换求A的全部特征值构成对角阵D,并求A的特征向量构成V的列向量。
③ 如[V,D]=eig(A,’nobalance’) 与②类似,但不是通过相似变换求解,而直接进行求解。
41、矩阵的超越函数
① sqrtm函数:如B=sqrtm(A) 求矩阵A的平方根。相当于A^0.5。
② logm函数:如B=logm(A) 求矩阵A的自然对数。
③ expm函数:如B=expm(A) 求自然常数e的A次幂。
④ funm函数:如B=funm(A,@fun) 即求直接作用于矩阵A的由fun指定的超越函数值。如B=funm(A,@sin),这里fun可以是exp、log、sin、cos、sinh、cosh。
42、稀疏矩阵
① 采用三元组按列存储。
② sparse函数:如S=sparse(A) 将矩阵A转化为稀疏存储方式的矩阵S;S=sparse(m,n) 生成一个m行n列的所有元素都是0的稀疏矩阵S;S=sparse(U,V,A) 其中U、V、A是3个等长的向量,A是要建立的稀疏矩阵的非零元素向量,U和V分别是对应的行和列下标值向量。
③ find函数:如[U,V,A]=find(S) 返回矩阵S中非零元素的下标和元素。
④ full函数:如A=full(S) 返回和稀疏矩阵S对应的完全存储方式矩阵。
⑤ spconvert函数:如S=spconvert(A) 其中A是一个m行3列或m行4列的矩阵,m是非零元素的个数,A的4个列的含义依次为非零元素所在的行、非零元素所在的列、非零元素的实部、非零元素的虚部,若非零元素为实数,则无需第4列。
⑥ spdiags函数:如[B,d]=spdiags(A) 从原带状矩阵A中提取全部非零对角线元素赋给矩阵B及这些非零对角线的位置向量d;又如[B]=spdiags(A,d) 从原带状矩阵A中提取由向量d所指定的那些非零对角线元素构成矩阵B;又如S=spdiags(B,d,m,n) 利用具有稀疏特征的带状矩阵生成稀疏矩阵S,其中m和n分别为原带状矩阵的行数和列数。
⑦ speye函数:如S=speye(m,n) 返回一个m行n列的稀疏存储的单位矩阵。
⑧ 稀疏矩阵的运算规则与普通矩阵一样。当参与运算的对象不全是稀疏矩阵时,所得结果一般是完全存储形式的矩阵。
43、sum函数:如s=sum(V) 当V是向量时,返回该向量全部元素的和;又如S=sum(A) 当A是矩阵时,返回值S是一个由A中列向量元素之和所构成的行向量。
五、字符串
1、字符串是用单撇号括起来的字符序列。如s='abc'
2、Matlab将字符串当作一个行向量,每个元素对应一个字符。因此,矩阵的许多使用方法和函数都可以在此进行应用。如s1=s(1:5) 即在s中取子串、k=find(s>='a'&s<='z') 即在s中找出小写字母的位置。
3、也可以建立多行字符串矩阵。如S=['abc';'123'] 但要求各行字符数要相等,或用空格来调节各行的长度使之彼此相等。
4、常用字符串处理函数
setstr
将ASCII码值转换成字符
str2num
将字符串转换成数值
mat2str
将矩阵转换成字符串
strcat
字符串连接
num2str
将数值转换成字符串
strcmp
字符串比较
int2str
将整数转换成字符串
strrep
字符串替换
5、若字符串中需要含有单撇号,则用两个单撇号表示。
6、如disp(['The value of x is',num2str(x)]) 显示字符串及变量值所对应的串值。
六、结构数据
1、结构矩阵的建立:结构矩阵名.成员名=表达式
如:a.x1=10; a.x2=[1,2;3,4]; a(2).x1=20; a(2).x2=[4,3;2,1];
2、结构矩阵元素的成员也可以是结构数据。
3、对结构数据的引用,可以引用其成员,也可引用结构矩阵的元素,也可引用结构变量。
4、结构成员的增加:如a(1).x3=30; 即给结构矩阵的任一个元素增加成员即可,其他成员均为空值。
5、rmfield函数:删除结构成员。如a=rmfield(a,'x3')
6、关于结构的函数
struct
建立或转换为结构矩阵
fieldnames
获取结构成员名
getfield
获取结构成员的内容
setfield
设定结构成员的内容
isstruct
是结构时,值为1
isfield
成员在结构中时,值为1
七、单元数据
1、单元矩阵的各个元素就是不同类型的数据。
2、单元矩阵的建立:和一般矩阵相似,只是矩阵元素用大括号括起来。
如a={ 10,'a',[1,2;3,4];20,'b',[4,3;2,1]}
3、单元矩阵的引用:用带有大括号下标的形式。如a{2,1}=30。
4、celldisp函数:如celldisp(c) 显示整个单元矩阵。
5、删除单元矩阵中的某个元素:如c(2)=[] 即删除单元矩阵c中的第2个元素。(c{2}=[]表示将单元矩阵c中的第2个元素置空,但并不删除)
6、关于单元的函数
num2cell
把数字矩阵转换为单元矩阵
cellplot
显示单元矩阵的图形描述
cell2struct
把单元矩阵转换为结构矩阵
deal
把输入分配给输出
iscell
是单元矩阵时,值为1
struct2cell
把结构矩阵转换为单元矩阵
八、程序设计
1、利用Matlab编写的程序,称为M文件。是一个文本文件。(Matlab提供的内部函数和各种工具箱,都是利用Matlab命令开发的M文件)。M文件要放在Matlab的工作目录中或其它目录(将该目录加到Matlab的搜索路径中)
2、M文件的两种类型
① 命令文件:没有输入和输出参数;对Matlab工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中;在Matlab的命令窗口中输入文件名可直接运行。
② 函数文件:可以有输入和返回参数;文件中变量为局部变量;需要以函数调用的方式运行。
3、edit命令:打开文本编辑器;若采用edit 文件名 的格式,则打开或新建一个M文件。
4、input函数:如x=input(提示串,选项) 提示串是一个字符串;从键盘输入的数据赋值给变量x;若输入为字符串,则需要选项’s’;键盘输入时的数据格式与数据赋值时的数据格式一致。
5、disp函数:如disp(A) 其中A是变量,与可以是字符串;显示A的值。又如disp([字符串,num2str(a)]) 即将字符串与变量值转换为串后一同显示。
6、pause函数:如pause(延迟秒数) 使程序暂停数秒;若直接使用pause函数,则程序暂停,直至用户按任一键继续;若强行中止程序的运行,可按Ctrl+C组合键。
7、if语句
① if 条件 语句组 end
② if 条件 语句组 else 语句组 end
③ if 条件 语句组 elseif 条件 语句组 … elseif 条件 语句组 else 语句组 end
8、switch语句
switch 表达式
case 值1
语句组1
…
otherwise
语句组n
end
9、try语句
try
语句组1
catch
语句组2
end
try语句执行语句组1,若在执行过程中出错,则将错误信息赋给预定义变量lasterr,并转去执行语句组2。
10、for语句
① for 循环变量=初值:步长:终值 循环体语句 end
② 步长为1时可省略,即 初值:终值
③ 循环语句的执行速度较慢,有时可用点运算来代替循环。
④ for 循环变量=矩阵表达式 循环体语句 end
⑤ ④格式的执行过程依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。
⑥ 实际上,(初值:步长:终值)是一个行向量,可视为仅为一行的矩阵,每列是单个数据。
11、while语句
While 条件 循环体语句 end
12、break与continue语句
13、每一个函数文件定义一个函数。其基本格式如下:
function 输出形参表=函数名(输入形参表)
注释说明部分
函数体语句
① 当输出形参多于一个时,则应用方括号括起来。
② M文件名与函数名最好一致。
③ 第一注释行:一般是大写的函数文件名和函数功能简要描述,供lookfor和help命令使用。
④ 第一注释行及之后连续的注释行:通常是函数输入输出参数的含义及调用格式说明等信息,构成全部在线帮助文本。
⑤ 与在线帮助文本相隔一空行的注释行,一般是诸如作者、修改日期、版本等信息,用于软件档案管理。
14、return语句:用于从函数文件中返回。
15、函数调用格式:[输出实参表]=函数名(输入实参表)
16、函数调用时各实参出现的顺序、个数应与函数定义时形参的顺序、个数一致。
17、Matlab中,函数可以嵌套(和递归)调用。
18、函数参数的可调性
① 在调用函数时,Matlab用两个预定义变量nargin和nargout分别记录调用该函数时的实际输入实参和输出实参的个数。
② 只要在函数文件中包含这两个变量,就可以准确知道该函数文件被调用时的输入输出参数个数,从而决定函数如何处理。
19、局部变量:函数文件中的变量是局部变量。
20、全局变量:作用域是整个Matlab工作空间。定义格式为:global 变量名列表
① 变量名列表中变量之间用空格分隔。
② 在编程时,可以在所有需要调用全局变量的函数里定义全局变量。同时,为了在基本工作空间中使用全局变量,也要定义全局变量。
③ 在函数文件里,全局变量的定义语句应放在变量使用之前。
④ 全局变量不受欢迎。
21、程序的调试:除采用调试器调试外,还有一些命令可用于程序调试。
dbstop
设置断点
dbstatus
显示所有已设置的断点
dbclear
清除已设置好的断点
dbstep
执行应用程序的一行或多行代码
bdcont
继续执行
dbtype
显示M文件代码和相应的行号
dbquit
退出调试状态
dbdwon/dbup
修改当前工作空间的上、下文关系
dbstack
显示当前堆栈的状态
九、绘图
1、二维数据曲线图是将平面坐标上的数据点连接起来的平面图;坐标系可以是直角坐标系、对数坐标系、极坐标系;数据点可以用向量或矩阵形式给出,类型可以是实数或复数。
2、plot函数
① 如plot(X,Y) 绘制直角坐标系下的二维曲线,X和Y是等长向量,分别存储x坐标和y坐标数据,它们构成一系列的点对。
② 当X是向量,Y是有一维与X同维的矩阵时,则绘制多根不同颜色的曲线。曲线条数等于Y矩阵的另一维数,X被作为这些曲线共同的横坐标。
③ 当X和Y是同维矩阵时,则以X、Y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
④ 如plot(X) 当X为实数向量时,以该向量元素的下标为横坐标,元素值为纵坐标画一条连续折线;当X为复数向量时,则分别以向量元素实部和虚部为横、纵坐标绘制一条曲线。
⑤ 当X是实数矩阵时,plot(X) 则按列绘制每列元素值相对其下标的多条曲线;当X是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。
⑥ 如plot(X1,Y1,X2,Y2,…,Xn,Yn) 绘制多条曲线。其中每一组向量对(Xi,Yi)可以绘制出一条曲线;每一组向量对的长度可以不同。配对的(Xi,Yi)也可以是矩阵对,则按它们的列元素为横、纵坐标绘制曲线。
⑦ 该函数一般是先取足够稠密的向量X值,然后计算函数值向量Y来绘图;取点时一般是等间隔采样。为了提高绘制精度,可采用fplot函数,它可自适应地对函数进行采样,以更好地反映函数的变化规律。
3、plotyy函数:如plotyy(X1,Y1,X2,Y2) 其中(X1,Y1)对应一条曲线、(X2,Y2)对应一条曲线;两者的横坐标标度相同,纵坐标有两个,左纵坐标用于(X1,Y1)数据对,右纵坐标用于(X2,Y2)数据对。
4、图形保持
① 若希望在已存在的图形上再继续添加新的图形,可以使用图形保持命令hold。
② hold on/off 命令用于控制是保持原有图形还是刷新原有图形。
③ 不带参数的hold命令在两种状态之间进行切换。
5、设置曲线样式
① 线型选项
-
实线(默认值)
-.
点划线
:
虚线
--
双划线
② 颜色选项
1
b
蓝色
4
c
青色
7
k
黑色
2
g
绿色
5
m
品红色
8
w
白色
3
r
红色
6
y
黄色
③ 标记符号选项
.
点
+
加号
d
菱形符
O(字母)
圆圈
*
星号
v
朝下三角符
X(字母)
叉号
s
方块符
^
朝上三角符
<
朝左三角符
>
朝右三角符
p
五角星符
h
六角星符
④ 以上三种选项可组合使用。如plot(X1,Y1,’b-.’,X2,Y2,’y:d’)
⑤ 当选项省略时,颜色将根据曲线的先后顺序依次采用②表中给出的前7种颜色。
6、图形标注
① title函数:如title(图形名称) 用于说明图形的名称。
② xlabel函数:如xlabel(X轴说明) 用于说明X坐标轴的名称。
③ ylabel函数:如ylabel(Y轴说明) 用于说明Y坐标轴的名称。
④ text函数:如text(x,y,图形说明) 在(x,y)坐标处添加图形说明。
⑤ gtext函数:如gtext(图形说明) 执行该命令时,单击鼠标即可将文本放置在十字光标处。
⑥ legend函数:如legend(图例1,图例2,…) 用于绘制曲线的图例,图例放置在图形空白处,用户也可通过鼠标移动图例。
⑦ 除legned函数外,其他函数也适用于三维图形。
⑧ 上述函数中的说明文字,除使用标准的ASCII字符外,还可使用LaTeX(一种十分流行的数学排版软件)格式的控制字符。
7、若干LaTeX格式
① 受LaTeX字符串控制的部分要加大括号括起来。
② \bf、\it、\rm分别定义黑体、斜体和正体字符。如'This is {\bf Matlab}'
③ 如'sin({\omega}t+{\beta})' 用于使用希腊字母。
④ 如'e^{axt}' 对应的标注效果为指数形式(即上标形式)。
⑤ 如'x_{12}' 对应的标注效果为下标形式。
8、坐标控制
① 一般Matlab绘图时会自动选择合适的坐标刻度。但用户也可以重新设定坐标刻度。
② axis函数:如axis([xmin xmax ymin ymax zmin zmax]) 用于设定绘图时的坐标刻度,若二维绘图,则只使用前4个参数。
③ 如axis equal 则横纵坐标采用等长刻度。
④ 如axis square 则产生正方形坐标系(默认为矩形)。
⑤ 如axis auto 则使用默认设置。
⑥ 如axis off/on 则取消或显示坐标轴。
⑦ grid命令:如grid on/off 用于控制画不画风格线,无参数的grid命令在两种状态下切换。
⑧ box命令:如box on/off 用于控制加不加边框线,无参数的box命令在两种状态下切换。
9、图形的可视化编辑:Matlab在图形窗口中提供了可视化的图形编辑工具。
10、图形窗口的分割
① 有时需要在一个图形窗口内绘制若干个独立的图形,这就需要对图形窗口进行分割;每一个绘图区可建立独立的坐标系并绘制图形;同一窗口的不同图形称为子图。
② subplot函数:如subplot(m,n,p) 将当前图形窗口分成m行n列个绘图区,区号按行优先编号,且选定第p个区为当前活动区。
③ plot函数等绘图函数都是在当前活动区内绘制。
④ 切换活动区仍使用subplot(m,n,p)函数,其中的m、n值同第1次使用时的值相同,用不同的p值来指定不同的绘图活动区。
11、fplot函数:如fplot(fname,lims,tol,选项) 其中fname是以字符串体现的函数名,它也可以是由多个分量构成的行向量,各分行可以是函数的直接字符串,但自变量都必须是x;lims是x、y的取值范围,以行向量 [xmin,xmax]或[xmin,xmax,ymin,ymax]两种形式;tol是相对允许误差,默认值为2e-3;选项定义与plot函数相同。
12、对数坐标图形
① semilogx函数:如semilogx(X1,Y1,选项1,X2,Y2,选项2,…) 其中X轴为常用对数刻度,Y轴仍保持线性刻度。
② semilogy函数:如semilogy(X1,Y1,选项1,X2,Y2,选项2,…) 其中Y轴为常用对数刻度,X轴仍保持线性刻度。
③ loglog函数:如loglog(X1,Y1,选项1,X2,Y2,选项2,…) 其中X轴和Y轴均采用常用对数刻度。
④ 以上函数中的选项与plot函数中的选项一样。
13、polar函数:如polar(theta,rho,选项) 用于绘制极坐标图。其中,theta是由极坐标极角所构成的向量,rho是与theta向量对应的由极坐标矢径所构成的向量,选项与plot函数相似。
14、二维统计分析图
① bar函数:如bar(X,Y,选项) 绘制条形图。
② stairs函数:如stairs(X,Y,选项) 绘制阶梯图。
③ stem函数:如stem(X,Y,选项) 绘制杆图。
④ 以上3个函数的用法与plot函数相似,只是没有多输入形式。
⑤ fill函数:如fill(X1,Y1,选项1,X2,Y2,选项2,…) 按向量元素下标渐增次序依次用直线段连接X、Y对应元素定义的数据点,并且首尾相连,构成封闭多边形,然后将多边形内部涂满指定的颜色。
⑥ pie函数:如pie(X) 利用向量X,绘制出各元素值占总和的百分比的饼图。
⑦ compass函数:如compass(Z) 利用复数向量Z,绘制出每个复数分量的相量图。
15、隐函数绘图:即ezplot函数
① 如ezplot(f) 其中f=f(x),在默认区间(-2*pi,2*pi)内绘制。
② 如ezplot(f,[a,b]) 其中f=f(x),在区间(a,b)内绘制。
③ 如ezplot(f) 其中f=f(x,y),x、y均在默认区间(-2*pi,2*pi)内绘制。
④ 如ezplot(f,[xmin,xmax,ymin,ymax]) 其中f=f(x,y),x、y在参数所指定的区间内绘制f(x,y)=0的图形。
⑤ 如ezplot(f,[a,b]) 其中f=f(x,y),x、y均在区间(a,b)内绘制。
⑥ 如ezplot(x,y) 其中x=x(t)、y=y(t),t在默认区间(0,2*pi)内绘制。
⑦ 如ezplot(x,y,tmin,tmax) 其中x=x(t)、y=y(t),t在指定区间内绘制。
⑧ 以上的f、x、y函数形式可以采用字符串的形式给出。
16、绘制三维曲线:即plot3函数
① 如plot3(X1,Y1,Z1,选项1,X2,Y2,Z2,选项2,…,Xn,Yn,Zn,选项n) 与plot函数的用法十分相似。
② 图形标注时还可以使用zlabel函数,与xlabel函数相似。
17、绘制三维曲面
① 方法:绘制z=f(x,y)所代表的三维曲面,先要在xy平面内设定一个矩形区域,例如D=[a,b]*[c,d],然后将[a,b]在x轴方向分成m份,将[c,d]在y轴方向分成n份,即将区域D分成m*n个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数求对应网格坐标的Z矩阵。
② meshgrid函数:如[X,Y]=meshgrid(x,y) 其中,x是[a,b]划分成m份后的向量,y是[c,d]划分成n份后的向量,矩阵X的每一行都是向量x,行数等于向量y的元素个数,矩阵Y的每一列都是向量y,列数等于向量x的元素个数。因此,X和Y相同位置上的元素对恰好是区域D的网格点坐标。当x=y时,该函数可写成meshgrid(x)。
③ 根据矩阵X和矩阵Y所对应的每一个网格点上的坐标求函数值z,则得到函数值矩阵Z。显然,X、Y、Z各列或各行所对应坐标对应于一条空间曲线,空间曲线的集合组成空间曲面。
④ mesh函数:如mesh(X,Y,Z,C) 用于绘制三维网格图。其中,X、Y、Z是维数相同的矩阵,X、Y是网格坐标矩阵,Z是网格点上的高度矩阵,C用于指定在不同高度下的颜色范围(C省略时,认为C=Z,即颜色的设定正比于图形的高度);当X和Y省略时,把Z矩阵的列下标当作x轴坐标、行下标当作y轴坐标;当X和Y是向量时,要求X的长度等于Z矩阵的列,Y的长度等于Z矩阵的行,X和Y向量元素的组合构成网格点的x,y坐标。
⑤ meshc函数:用法与mesh函数相似,不同的是还在xy平面上绘制曲面在在z轴方向的带等高线。
⑥ meshz函数:用法与mesh函数相似,不同的是还在xy平面上绘制曲面的底座。
⑦ surf函数:用法与mesh函数相似,各线条之间的补面用颜色填充。相应地也可使用surfc函数。
18、标准三维曲面
① Matlab提供了一些函数用于绘制标准三维曲面,并可利用这些函数产生相应的绘图数据。也常用于三维图形的演示。
② sphere函数:如[X,Y,Z]=sphere(n) 绘制圆心位于原点,半径为1的单位球体。当有输出参数时,可产生(n+1)*(n+1)的矩阵X、Y、Z数据;又如sphere(n)可绘制出多面体表面图,n也可省略,默认值为20。
③ cylinder函数:如[X,Y,Z]=cylinder(R,n) 绘制柱面。其中,R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,缺省为20。如cylinder(3)生成一个圆柱;cylinder([10,1])生成一个圆锥。
④ peaks函数(也称多峰函数):在[-3,3]*[-3,3]的矩形区域内划分网格来确定函数值。如[X,Y,Z]=peaks(n) 将生成n*n的输出矩阵值。
⑤ 也可利用以上函数所生成的数据,通过mesh或surf函数来绘制。
19、三维统计图形
① bar3函数:绘制三维条形图。如bar3(X) X的每个元素对应于一个条形;又如bar3(X,Y) 在X指定的位置上绘制Y中元素的条形图。
② stem3函数:绘制离散序列数据的三维杆图。如stem3(Z) 将数据序列Z表示为从
展开阅读全文