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 操作的注意事项
●在MATLAB工作区输入MATLAB命令后, 还须按下Enter键, MATLAB才能执行你输入的MATLAB命
令, 否则MATLAB不执行你的命令。
●MATLAB 是区分字母大小写的。
●一般,每输入一个命令并按下Enter键, 计算机就会显示此次输入的执行结果。(以下用↙表示
回车)。如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;”
即可以达到目的。如:
x= 2 + 3↙ x=5
x = 2 + 3 ; ↙不显示结果5
●在MATLAB工作区如果一个表达式一行写不下,可以用在此行结尾处键入三个英文句号的方法达
到换行的目的。如:
q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)…
-5x+1/2-567/(x+y)
●MATLAB 可以输入字母、汉字,但是标点符号必须在英文状态下书写。
●MATLAB 中不需要专门定义变量的类型,系统可以自动根据表达式的值或输入的值来确定变量的
数据类型。
●命令行与M文件中的百分号“%”标明注释。在语句行中百分号后面的语句被忽略而不被执行,
在M文件中百分号后面的语句可以用Help命令打印出来。
三、MATLAB的变量与表达式
●MATLAB的变量名
MATLAB的变量名是用一个字母打头,后面最多跟19个字母或数字来定义的。如x,y,ae3,d3er45都是合法的变量名。应该注意不要用MATLAB中的内部函数或命令名作为变量名。MATLAB中的变量名是区分大小写字母的。如在MATLAB中,ab与 Ab表示两个不同的变量。列出当前工作空间中的变量命令为Who 将内存中的当前变量以简单形式列出;
Whos 列出当前内存变量的名称、大小、类型等信息;
Clear 清除内存中的所有变量与函数。
●MATLAB的运算符
数学运算符:+(加号),-(减号),*(乘号), \(左除), / (右除), ^ (乘幂)
关系运算符:< (小于), > (大于), <= (小于等于), >= (大于等于),
= =(等于), ~= (不等于)
逻辑运算符:&(逻辑与运算), |( 逻辑或运算), ~( 逻辑非运算)
● MATLAB 的表达式及语句
表达式由运算符、函数、变量名和数字组成的式子。MATLAB 语句由变量、表达式及MATLAB 命令组成,用户输入的语句由MATLAB 系统解释运行。MATLAB 语句的2种最常见的形式为:
形式1:表达式
形式2:变量=表达式
在第一种形式中,表达式运算后产生的结果如果为数值类型,系统自动赋值给变量ans ,并显示在屏幕上。
例1:用两种形式计算3
6
sin 5e ++π算术运算结果。 解:Matlab 命令为
形式1:
5^6+sin(pi)+exp(3) ↙ ans =
1.5645e+004
形式2:
a=5^6+sin(pi)+exp(3) ↙ a =
1.5645e+004
如果在表达式的后面加“;”,有 a=5^6+sin(pi)+exp(3);↙ 执行后不显示运算结果。
例2:已知矩阵
??
?
???=????
??=22
11
,2121B A ,对它们做简单的关系与逻辑运算
解:Matlab 命令为
A=[1,2;1,2]; ↙ B=[1,1;2,2]; ↙ C=(A
0 0 0 0
四、MATLAB 的数据显示格式
虽然在MATLAB 系统中数据的存储和计算都是双精度进行的,但MATLAB 可以利用菜单或format 命令来调整数据的显示格式。Format 命令的格式和作用如下:
● Format|format short 5位定点表示 ● Format long 15位定点表示 ● format short e 5位浮点表示 ● Format long e 15位浮点表示
● Format short g 系统选择5位定点和5位浮点中更好的表示 ● Format long g 系统选择15位定点和15位浮点中更好的表示 ● Format rat 近似的有理数的表示 ● Format hex 十六进制的表示
● Format bank 用元 角分(美制)定点表示 ● Format compact 变量之间没有空行 ● Format loose 变量之间有空行 例3:对数7sin 5+=a 用五位定点、十五位定点以及有理数形式表示出来。
解: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的常用内部函数有:
六、矩阵的操作
MATLAB的基本单位是矩阵,它是的MATLAB精髓,掌握矩阵的输入、各种数值运算以及矩阵函数的使用是以后能否学好MATLAB的关键。
矩阵的输入
I.直接输入创建矩阵
输入方法是先键入左方括弧“[”,然后按行直接键入矩阵的所有元素,最后键入右方括弧“]”。注意:整个矩阵以“[”和“ ]”作为首尾,同行的元素用“,”或空格隔开,不同行的元素用“;”或按Enter键来分隔;矩阵的元素可以为数字也可以为表达式,如果进行的是数值计算,表达式中不可包含未知的变量。
例4:直接输入创建矩阵
?
?
?
?
?
?
?
?
?
?
=
9
8
7
60
15
4
3
2
1
A
解:Matlab命令为
A = [1,2,3; 4,15,60; 7,8,9] ↙
A =
1 2 3
4 1
5 60
7 8 9
或用Matlab命令
A=[1,2,3↙
4,15,66↙
7,8,9] ↙
A =
1 2 3
4 1
5 60
7 8 9
I.用矩阵函数来生成矩阵
MATLAB 提供了大量的函数来创建一些特殊的矩阵,表2.3给出MATLAB常用的矩阵函数。
例5:输入矩阵
111 111 111
?? ? ? ???。
解:Matlab命令为
ones(3) ↙ %生成元素都为1的3阶方阵ans =
1 1 1
1 1 1
1 1 1
例6:输入矩阵
00000 00000?? ???
解: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
●操作符“:”的说明
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
●对矩阵元素的操作
设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:已知矩阵
?
?
?
?
?
?
?
?
?
?
=
1
6
2
ln
9
7
3
sin
56
23
1
A
,抽取与修改矩阵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:已知矩阵
?
?
?
?
?
?
=
?
?
?
?
?
?
=
8
5
1
,
9
6
3
1
B
A
,利用A与B生成矩阵
13100
690
C
??
= ?
??,
() D A B
=
,
A
AA
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:已知矩阵
?
?
?
?
?
?
?
?
?
?
=
1
6
2
ln
9
7
3
sin
56
23
1
A
,删除矩阵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
● 矩阵的运算
A+B: 矩阵加法 A-B: 矩阵减法 A*B: 矩阵乘法 A \B: 矩阵的左除 A/B: 矩阵的右除 transpose(A)或A ’:A 的转置
A k *:数k 乘以A
det(A): A 的行列式: rank(A):A 的秩
七、数组
在MATLAB 中数组就是一行或者一列的矩阵,前边介绍的对矩阵输入、修改、保存都适用于数组,同时MATLAB 还提供了一些创建数组的特殊指令。
● 特殊数组的创建
linspace(a,b,n) 给出区间[a,b]的n 个等分点数据 logspace(a,b,n) 给出区间]10,10[b
a
的n 个等比点数据,公比为1
10b a 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) ↙ %给出区间]10,10[1
的6个等比点数据,公比为2
.010 ans =
1.0000 1.5849
2.5119
3.9811 6.3096 10.0000
● 数组运算
数组的运算除了作为1×n 的矩阵应遵循矩阵的运算规则外,MATLAB 中还为数组提供了一些特殊的运算: 乘法为:.* ,左除为:.\ ,右除为:./ ,乘幂为:.^ 。
设数组
[]n a a a ,,, 21=α,
[]
n b b b ,,, 21=β,则对应的运算具体为:
[]n n b a b a b a ±±±=±,,, 2211βα
[]
n n b a b a b a ,,,*. 2211=βα
[
]k
n k k a a a k ,,,.^ 21=α
?
??
?
??=n n b a b a b a ,,,/. 2
211βα
?
??
???=n n a b a b a b ,,,\. 2
211βα
例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:计算sin(),2,1,0
2
k k
π
=±±
的值。
解: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文件中,当表达式后面接分号时,表达式的计算结果虽不显示但中间结果仍保存在内存中。若程序为命令文件,则程序执行完以后,中间变量仍予以保留;若程序为函数文件,则程序执行完以后,中间变量被全部删除。
文件的操作
为叙述方便,用记号“主菜单名|子菜单名|...”来指示子菜单。例如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文件编辑器(编辑窗口)
●命令文件
命令文件的一般形式为:
如a1.m, pp.m等都是合法的M文件名。
M文件有两种运行方式:一是在命令窗口直接写文件名,按Enter键; 二是在编辑窗口打开菜单Tools,再单击Run。M文件保存的路径一定要在搜索路径上,否则M文件不能运行。以下例题中如果不做特别说明,都是以第一种方式运行的。
例15:用M命令文件画出衰减振荡曲线
t
e
y
t
3
sin
3
-
=及其它的包络线3
t
e
y
-
=
。t的取值范围是
]
4,0[π。
解:步骤:
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 衰减振荡曲线与包络
● M函数文件
M函数文件的一般形式为:
function <因变量>=<函数名>(<自变量>)
M函数文件可以有多个因变量和多个自变量,当有多个因变量时用[]括起来。为了更好的理解函数文件,请看下例:
例16:设可逆方阵为A,编写同时求
'
,
,
,1
2A
A
A
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函数文件,并且保存在搜索路径上,文件名为comp
4.m; 4.命令窗口执行下列语句:
A=[1,2;5,8];↙%输入矩阵A。
comp4(A)↙%调用comp4.m函数计算矩阵A的
'
,
,
,1
2A
A
A
A-
。
da =
-2
a2 =
11 18
45 74
inva =
-4.0000 1.0000
2.5000 -0.5000
traa =
1 5
2 8
九、程序设计语句
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循环中退出循环,继续执行循环后面的命令。
●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
●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:编一函数计算函数值:
?
?
?
?
?
?
?
>
+
≤
<
-
≤
≤
-
<
=
30
ln
sin
30
10
11
3
10
1
1
2
1
)
(
x
x
x
x
x
x
x
x
x
x
f
解:(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函数文件计算
)
10
(
),
30
(
),
2(
),
2.0(π
f
f
f
f。
result=[yx(0.2),yx(2),yx(30),yx(10*pi)]↙
result =
0.2000 3.0000 79.0000 3.4473
switch-case-end分支
Switch语句的形式为:
s witch 表达式
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]; ↙
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); ↙
例23:画出椭圆
1
2
52
2
2
2
=
+
y
x
的曲线图。
解:对于这种情形,首先把它写成参数方程
)
2
0(
sin
2
cos
5
π
≤
≤
?
?
?
=
=
t
t
y
t
x
。
Matlab 命令: t=0:pi/50:2*pi; ↙
x=5*cos(t); ↙
y=2*sin(t); ↙
3. plot(x1,y1,x2,y2,x3,y3…)
功能:在同一图形窗口画出多条不同颜色曲线,曲线关系为
.
),
3
(
3
),
2
(
2
),
1
(
1
x
f
y
x
f
y
x
f
y=
=
=。
例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) ↙
4.ezplot(F,[xmin,xmax])
功能:画出符号函数F在区间[xmin,xmax]内的图像
说明: F是只含有一个变量的函数。如果区间[xmin,xmax]缺省,默认区间为
[-2pi,2pi]
例25:绘制
t
e
y
t
2
3
cos
3
2
2
-
=
在
]
*
4,0[pi间的图形。
Matlab命令:syms t ↙
ezplot(‘2/3*exp(-t/2)*cos(3/2*t)’,[0,4*pi]) ↙
图2.10 符号函数的图形
5.二维特殊图形
除了plot指令外,Matlab还提供了许多其它的二维绘图指令,这些指令大大扩充了Matlab的曲线作图指令,可以满足用户的不同需要。
例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 是矩阵。等价于??
?=)
,,(),(],[Z Y X mesh y x meshgrid Y X
mesh(Z) 若提供参数x,y,等价于mesh(x,y,Z),否则默认x=1:n,y=1:m,其中
n
m Z ?
例27:画出函数)sin sin(y x z +=在-3 ≤ x ,y ≤ 3及2
2
2y x
z -=在-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)与马鞍面的网格图
MATLAB简介 MATLAB的名称源自Matrix Laboratory,它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用MATLAB产品的开放式结构,可以非常容易地对MATLAB的功能进行扩充,从而在不断深化对问题认识的同时,不断完善MATLAB产品以提高产品自身的竞争能力。 目前MATLAB产品族可以用来进行: ?数值分析 ?数值和符号计算 ?工程与科学绘图 ?控制系统的设计与仿真 ?数字图像处理 ?数字信号处理 ?通讯系统设计与仿真 ?财务与金融工程 MATLAB产品家族的构成见上图,下面对各个组成部分进行介绍: MATLAB是MATLAB产品家族的基础,它提供了基本的数学算法,例如矩阵运算、数值分析算法,MATLAB集成了2D和3D图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言——M语言,利用M语言可以通过编写脚本或者函数文件实现用户自己的算法。
MATLAB Compiler是一种编译工具,它能够将那些利用MATLAB提供的编程语言——M语言编写的函数文件编译生成为函数库、可执行文件、COM 组件等等,这样就可以扩展MATLAB功能,使MATLAB能够同其他高级编程语言例如C/C++语言进行混合应用,取长补短,以提高程序的运行效率,丰富程序开发的手段。 利用M语言还开发了相应的MATLAB专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。目前MATLAB产品的工具箱有四十多个,分别涵盖了数据采集、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。 Simulink是基于MATLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模围广泛,可以针对任何能够用数学来描述的系统进行建模,例如航空航天动力学系统、卫星控制制导系统、通讯系统、船舶及汽车动力学系统等等,其中包括连续、离散,条件执行,事件驱动,单速率、多速率和混杂系统等等。Simulink提供了利用鼠标拖放的方法建立系统框图模型的图形界面,而且Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Simulink几乎可以做到不书写一行代码完成整个动态系统的建模工作。 Stateflow是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。Stateflow与Simulink和MATL AB紧密集成,可以将Stateflow创建的复杂控制逻辑有效地结合到Simulink的模型中。 在MATLAB产品族中,自动化的代码生成工具主要有Real-Time Wor kshop(RTW)和Stateflow Coder,这两种代码生成工具可以直接将Simulink 的模型框图和Stateflow的状态图转换成高效优化的程序代码。利用RTW生成的
MATLAB简介 MATLAB是一个集数值计算、符号分析、图象显示、文字处理于一体的大型集成化软件.它最初由美国的Cleve Moler博士所研制.其目的是为线性代数等课程中的矩阵运算提供一种方便可行的实验手段.经过十几年的市场竞争和发展,MATLAB已发展成为在自动控制、生物医学工程、信号分析处理、语言处理、图像信号处理、雷达工程、统计分析、计算机技术、金融界和数学界等各行各业中都有极其广泛应用的数学软件. 归纳起来,MATLAB具有以下几个特点:易学、适用范围广、功能强、开放性强、网络资源丰富. 由于MATLAB的强大功能,它能使使用者从繁重的计算工作中解脱出来,把精力集中于研究、设计以及基本理论的理解上,所以,MATLAB已成为在校大学生、硕士生、博士生所热衷的基本数学软件.在此,我们把MATLAB作为学习数学的工具介绍给读者,希望能有利于读者今后的学习. 一MATLAB的运行 启动MATLAB点击MATLAB图标,进入到MATLAB命令窗(MATLAB Command Window).在命令窗内,可以输入命令、编程、进行计算. 学会使用help命令在命令窗内输入help命令,再敲回车键.在屏幕上出现了在线帮助总览.(注意:MATLAB命令被输入后,必需敲回车键才能执行.为行文方便,以后不再每次
提醒“敲回车键”.)学会使用help命令,是学习MATLAB的有效方法.例如:要想知道MATLAB中的基本数学函数有哪些,可以在总览的第五行查到:MATLAB中的“基本数学函数”用elfun表示,于是,可进一步键入:“help elfun”,屏幕上将出现“基本数学函数”表.(注意:help elfun之间有空格,以后不再每次提醒.)如果想了解sin函数怎样使用,可进一步键入help sin.在工具栏中点击help按扭,或点击?号按扭,与上面获取帮助信息的方法是等效的. 学会使用demo命令在命令窗内输入demo命令,再敲回车,键屏幕上将出现演示窗口.(MATLAB Demo Window)一共有三个窗口,左边的窗口显示欲演示内容的大标题,选定其中一项,右下方的小窗口显示欲演示的具体内容,选中其中一栏,再点击run按扭,屏幕上将演示选定的演示程序.右上方的窗口显示关于大标题的一些说明.在命令窗内输入type (文件名),将显示演示程序的M文件,仔细研究演示程序的M文件,是学习MATLAB的又一有效方法. 进入演示窗还有另一方法:在工具栏中点击Help栏,下拉式菜单中点击examples and demos项,即可进入演示窗口. 退出在工具栏中点击File按钮,在下拉式菜单中单击Exit MATLAB项即可. 二变量、语句、矩阵与函数 1.变量
目录: 一、说明 二、数据类型及基本输入输出 三、流程控制 四、循环 五、数组、数组运算和矩阵运算 六、M脚本文件和M函数文件、函数句柄 七、文件 八、数据和函数的可视化 一、说明 matlab作为数学软件有其强大的图形用户界面操作、数据和函数的可视化和数值计算功能,且自带很多现有的函数和工具包。而本文只涉及一些比较系统的基本操作,在最后附带介绍一些基本的数据和函数的可视化命令。建议要用的时候再利用matlab自带的帮助文档来搜索有用的函数和工具包。matlab的函数和命令都是比较人性化的,比如想要搜索读取fits文件的函数,搜索fits就能够搜到fitsread函数;需要将读出的fits数据重新做图,搜索image就可以找到imagesc函数。从书和别人的文档都只能学到有限的比较系统的操作,看帮助文档能发现更多的东西并整理出自己的使用方法。 二、数据类型及基本输入输出 1、数据类型,声明及赋初值 matlab中存储的数据类型(class)有以下几种: 而实际上matlab不需要对变量做声明,当它发现一个新的变量名时,将默认将其为双精度浮点类型(double)并分配内存空间。(这比C和 Fortran方便了许多,但在完成大运算量的程序时就显得浪费存储空间了) 当需要把变量a从double转为其他类型的时候,比如要转为int16型,可以使用以下命令:a=int16(a) 当需要创建一个字符型变量x并对其赋初值时,用以下格式:x='字符串'; 注意: (1)在命令后加“;”表示不在command window中显示结果,而对上例来说如果不加“;”则会显示所赋字符串内容。 (2)所有的命令必须在英文输入状态下,如果使用中文输入状态下全角的“;”,将被处理为非法字符。其中logical,cell和structure为逻辑,元胞和构架数组类型,将在后面的数组部分提到;function handle为函数句柄类型,将在后面的“M脚本文件和M函数文件、函数句柄”部分提到;java类供JAVA API应用程序接口使用,本文不进行说明。最后说明一下,matlab也支持复数操作,赋值的时候直接输入即可,比如:a=1+2i; 2、基本输入输出 输入:v=input('message') %将用户输入的内容赋给变量v v=input('message','s') %将用户输入的内容作为字符串赋给变量v keyboard %用户可以从键盘输入任意多个指令 v=yesinput('prompt',default,possib) %prompt为文字提示,default为缺省设置“值”,possib为设置值的范围。
MATLAB 模块介绍 -------- 数学 & 金融 u Curve Fitting Toolbox Curve Fitting Toolbox 扩展MATLAB 环境,集成数据管理,拟合,显示,检验和输入分析过程等功能。所有能通过GUI 使用的功能都可以通过命令行来进行。
u Database Toolbox ——与关系数据库交换数据 Database Toolbox提供了同任何支持ODBC/JDBC标准的数据库进行数据交换的能力。利用在工具箱中集成的Visual Query Builder工具,无需学习任何SQL语句就可以实现在数据库中查寻数据的功能。这样MATLAB就能够对存储在数据库中的数据进行各种各样的复杂分析。在MATLAB环境中,也可以使用SQL命令来进行如下操作: 对数据库数据进行读、写操作;应用简单或复杂的条件查询数据库中的内容。 特点: ?与支持ODBC/JDBC 数据库建立连接,包括Oracle 、Sybase SQL Server ,Sybase SQL Anywhere ,Microsoft SQL Sever ,Microsoft Access ,Informix Ingres 等。?支持SQL 语句,可以在MATLAB 环境下直接执行SQL 查询命令 ?动态数据调入:可以根据需要使用SQL 在MATLAB 中获取数据,本工具箱对某一种类型的数据库进行大量或小量的查询 ?数据类型保持:在MATLAB 中对数据的调入或调出操作都能保持原有的数据类型 ?多个对话能力,采用本工具箱可在MATLAB 中从一个数据库中调入数据,对那些数据进行分析,然后输出到另一个数据库中 ?处理大量数据的能力:采用本工具箱你可以一次或分几次处理大量的数据,这样能让你根据任务高效地进行数据处理 ?连续状态的数据库联接:一旦和某个数据库的联接建立起来后,数据库一直是打开的,除非你在MATLAB 中执行关闭语句。这提高了数据库的读取速度,减少了不必要的命令来调入、输出数据。 ?无需了解SQL 也能够对数据库数据进行查询。 功能: Database Toolbox 可以与流行的数据库交互数据,其中包括Oracle ,Sybase ,Microsoft SQL Server 及Informix 等。工具箱还允许在单个MATLAB 进程中对多个数据库进行操作,同时支持对大量数据处理。工具箱中包含的Visual Query Builder ,即使不知道SQL ,也能可视化地与数据库打交道。 u Financial Derivatives Toolbox Financial Derivatives Toolbox 用于分析金融衍生工具和投资。 特点 ?提供各种利息率模型 ?提供七种金融工具一系列计算的函数
实验1 MATLAB 使用方法和程序设计 一、实验目的 1、掌握MATLAB 软件使用的基本方法。 2、熟悉MATLAB 的数据表示、基本运算和程序控制语句。 3、熟悉MATLAB 绘图命令及基本绘图控制。 4、熟悉MATLAB 程序设计的基本方法。 二、实验内容 1.帮助命令 使用Help 命令,查找sqrt (开方)函数的使用方法。 2、矩阵运算 (1)矩阵乘法 已知A=[1 2;3 4];B=[5 5;7 8]; 求A^2*B 。 (2) 矩阵除法 已知A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3]; 求A\B,A/B 。 (3) 矩阵的转置及共轭转置 已知A=[5+i ,2-i ,1;6*i ,4,9-i];求A.’,A ’ 。 (4)使用冒号选出指定元素 已知A=[1 2 3 ; 4 5 6 ; 7 8 9]; 求A 中第3列前2个元素;A 中所有列第2,3行的元素。 (5)方括号[] 用magic 函数生成一个4阶魔术矩阵,删除该矩阵的第四列。 3、多项式 (1)求多项式p(x)=x 3-2x-4的根。 (2)求 f (x) = (cos x)2 的一次导数。 (3)求微分方程 的通解,并验证。 4、基本绘图命令 (1)绘制余弦曲线cost =y , ]2,0[π∈t 。 (2)在同一坐标系中绘制余弦曲线 0.25)-cos(t =y 和正弦曲线 )5.0sin(-=t y ,]2,0[π∈t (3)用plot3函数绘制三维螺线: 22x dy xy xe dx -+= sin()cos()x t y t z t =??=??=?( 0 < t < 20 )
MATLAB 小波变换指令及其功能介绍 1 一维小波变换的 Matlab 实现 (1 dwt函数 功能:一维离散小波变换 格式:[cA,cD]=dwt(X,'wname' [cA,cD]=dwt(X,Lo_D,Hi_D别可以实现一维、二维和 N 维 DFT 说明:[cA,cD]=dwt(X,'wname' 使用指定的小波基函数 'wname' 对信号X 进行分解,cA 、cD 分别为近似分量和细节分量; [cA,cD]=dwt(X,Lo_D,Hi_D 使用指定的滤波器组 Lo_D、Hi_D 对信号进行分解。 (2 idwt 函数 功能:一维离散小波反变换 格式:X=idwt(cA,cD,'wname' X=idwt(cA,cD,Lo_R,Hi_R X=idwt(cA,cD,'wname',L函数 fft、fft2 和 fftn 分 X=idwt(cA,cD,Lo_R,Hi_R,L 说明:X=idwt(cA,cD,'wname' 由近似分量 cA 和细节分量 cD 经小波反变换重构原始信号 X 。 'wname' 为所选的小波函数 X=idwt(cA,cD,Lo_R,Hi_R 用指定的重构滤波器 Lo_R 和 Hi_R 经小波反变换重构原始信号 X 。
X=idwt(cA,cD,'wname',L 和 X=idwt(cA,cD,Lo_R,Hi_R,L 指定返回信号 X 中心附近的 L 个点。 2 二维小波变换的 Matlab 实现 二维小波变换的函数别可以实现一维、二维和 N 维 DFT 函数名函数功能 --------------------------------------------------- dwt2 二维离散小波变换 wavedec2 二维信号的多层小波分解 idwt2 二维离散小波反变换 waverec2 二维信号的多层小波重构 wrcoef2 由多层小波分解重构某一层的分解信号 upcoef2 由多层小波分解重构近似分量或细节分量 detcoef2 提取二维信号小波分解的细节分量 appcoef2 提取二维信号小波分解的近似分量 upwlev2 二维小波分解的单层重构 dwtpet2 二维周期小波变换 idwtper2 二维周期小波反变换 ----------------------------------------------------------- (1 wcodemat 函数 功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分格式: Y=wcodemat(X,NB,OPT,ABSOL Y=wcodemat(X,NB,OPT Y=wcodemat(X,NB
一. Matlab中常见函数基本用法 1.sum (1 )sum(A)A为矩阵得出A矩阵每列的和组成的一个矢量; A为矢量得出A的各元 素之和 (2)sum(diag(A))得矩阵A的对角元素之和 (3)sum(A,dim) A为矩阵,sum(A,1)按列求和;sum(A,2)按行求和 2.max(min) (1)max(A) 若A为矩阵则得出A矩阵每列的最大元素组成的一个矢量 若A为矢量则得出A中最大的元 (2)max(A,B) A与B为同维矩阵得出取A 与B中相同位置元素中较大者组成的新矩阵 (3)max(A,[],dim) max(a,[ ],1),求每列的最大值;max(a,[ ],2)求每行的最大值 3.find (1)find(X)若X为行向量则得出X中所有非零元素所在的位置(按行)若X为列向量或矩阵则得出X中所有非零元素的位置(按列)(2)ind = find(X, k)/ind = find(X,k,'first') 返回前k个非零元的指标ind = find(X,k,'last') 返回后k个非零元的指标 (3)[row,col] = find(X) row代表行指标,col代表列指标 [row,col,val] = find(X) val表示查找到对应位置非零元的值 [row,col] = find(A>100 & A<1000) 找出满足一定要求的元素 4.reshape (1)B = reshape(A,m,n) 把A变成m*n的矩阵 5.sort (1)B = sort(A) 把A的元素按每列从小到大的顺序排列组成新矩阵
(2)B = sort(A,dim) dim=1同(1); dim=2 把A按每行从小到大的顺序排列组成新矩阵 6.cat (1)C = cat(dim, A, B) dim=1相当于[A;B];dim=2相当于[A,B] (2)C = cat(dim, A1, A2, A3, A4, ...) 类推(1) 7.meshgrid (1)[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制。(2)[X,Y] = meshgrid(x) (1)y=x中情形 8.diag (1)X = diag(v,k) 向量v作为X的第k对角线上的元素X的其他元素为零(2)X = diag(v) (1)中k=0的情况 (2)v = diag(X,k) v为矩阵X的第k对角线的元素组成的列向量 (4)v = diag(X) (3)中k等于零的情况
MATLAB小波变换指令及其功能介绍 1 一维小波变换的 Matlab 实现 (1) dwt函数 功能:一维离散小波变换 格式:[cA,cD]=dwt(X,'wname') [cA,cD]=dwt(X,Lo_D,Hi_D)别可以实现一维、二维和 N 维DFT 说明:[cA,cD]=dwt(X,'wname') 使用指定的小波基函数 'wname' 对信号X 进行分解,cA、cD 分别为近似分量和细节分量; [cA,cD]=dwt(X,Lo_D,Hi_D) 使用指定的滤波器组 Lo_D、Hi_D 对信 号进行分解。 (2) idwt 函数 功能:一维离散小波反变换 格式:X=idwt(cA,cD,'wname') X=idwt(cA,cD,Lo_R,Hi_R) X=idwt(cA,cD,'wname',L)函数 fft、fft2 和 fftn 分 X=idwt(cA,cD,Lo_R,Hi_R,L) 说明:X=idwt(cA,cD,'wname') 由近似分量 cA 和细节分量 cD 经 小波反变换重构原始信号 X 。 'wname' 为所选的小波函数 X=idwt(cA,cD,Lo_R,Hi_R) 用指定的重构滤波器 Lo_R 和 Hi_R 经小波反变换重构原始信号 X 。 X=idwt(cA,cD,'wname',L) 和 X=idwt(cA,cD,Lo_R,Hi_R,L) 指定返回信号 X 中心附近的 L 个点。 2 二维小波变换的 Matlab 实现 二维小波变换的函数别可以实现一维、二维和 N 维 DFT 函数名函数功能
--------------------------------------------------- dwt2 二维离散小波变换 wavedec2 二维信号的多层小波分解 idwt2 二维离散小波反变换 waverec2 二维信号的多层小波重构 wrcoef2 由多层小波分解重构某一层的分解信号 upcoef2 由多层小波分解重构近似分量或细节分量 detcoef2 提取二维信号小波分解的细节分量 appcoef2 提取二维信号小波分解的近似分量 upwlev2 二维小波分解的单层重构 dwtpet2 二维周期小波变换 idwtper2 二维周期小波反变换 ----------------------------------------------------------- (1) wcodemat 函数 功能:对数据矩阵进行伪彩色编码函数 fft、fft2 和 fftn 分 格式:Y=wcodemat(X,NB,OPT,ABSOL) Y=wcodemat(X,NB,OPT) Y=wcodemat(X,NB) Y=wcodemat(X) 说明:Y=wcodemat(X,NB,OPT,ABSOL) 返回数据矩阵 X 的编码矩阵 Y ;NB 伪编码的最大值,即编码范围为 0~NB,缺省值 NB=16; OPT 指定了编码的方式(缺省值为 'mat'),即:别可以实现 一维、二维和 N 维 DFT OPT='row' ,按行编码 OPT='col' ,按列编码
Toolbox工具箱 序号工具箱备注 一、数学、统计与优化 1 Symbolic Math Toolbox 符号数学工具箱 Symbolic Math Toolbox?提供用于求解和推演符号运算表达式以及执行可变精度算术的函数。您可以通过分析执行微分、积分、化简、转换以及方程求解。另外,还可以利用符号运算表达式为MATLAB?、Simulink?和Simscape?生成代码。 Symbolic Math Toolbox 包含MuPAD?语言,并已针对符号运算表达式的处理和执行进行优化。该工具箱备有MuPAD 函数库,其中包括普通数学领域的微积分和线性代数,以及专业领域的数论和组合论。此外,还可以使用MuPAD 语言编写自定义的符号函数和符号库。MuPAD 记事本支持使用嵌入式文本、图形和数学排版格式来记录符号运算推导。您可以采用HTML 或PDF 的格式分享带注释的推导。 2 Partial Differential Euqation Toolbox 偏微分方程工具箱 偏微分方程工具箱?提供了用于在2D,3D求解偏微分方程(PDE)以及一次使用有限元分析。它可以让你指定和网格二维和三维几何形状和制定边界条件和公式。你能解决静态,时域,频域和特征值问题在几何领域。功能进行后处理和绘图效果使您能够直观地探索解决方案。 你可以用偏微分方程工具箱,以解决从标准问题,如扩散,传热学,结构力学,静电,静磁学,和AC电源电磁学,以及自定义,偏微分方程的耦合系统偏微分方程。 3 Statistics Toolbox 统计学工具箱
4 Curve Fitting Toolbox 曲线拟合工具箱 Curve Fitting Toolbox?提供了用于拟合曲线和曲面数据的应用程序和函数。使用该工具箱可以执行探索性数据分析,预处理和后处理数据,比较候选模型,删除偏值。您可以使用随带的线性和非线性模型库进行回归分析,也可以指定您自行定义的方程式。该库提供了优化的解算参数和起始条件,以提高拟合质量。该工具箱还提供非参数建模方法,比如样条、插值和平滑。 在创建一个拟合之后,您可以运用多种后处理方法进行绘图、插值和外推,估计置信区间,计算积分和导数。 5 Optimization Toolbox 优化工具箱 Optimization Toolbox?提供了寻找最小化或最大化目标并同时满足限制条件的函数。工具箱中包括了线性规划、混合整型线性规划、二次规划、非线性优化、非线性最小二乘的求解器。您可以使用这些求解器寻找连续与离散优化问题的解决方案、执行折衷分析、以及将优化的方法结合到其算法和应用程序中。 6 Global Optimization Toolbox 全局优化工具箱 Global Optimization Toolbox 所提供的方法可为包含多个极大值或极小值的问题搜索全局解。它包含全局搜索、多初始点、模式搜索、遗传算法和模拟退火求解器。对于目标
MATLAB 软件使用简介 默认分类2007-03-15 21:26:49 阅读4106 评论8 字号:大中小订阅 MATLAB 软件使用简介 MATLAB 是一个功能强大的常用数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。MATLAB自1984年由美国的MathWorks公司推向市场以来,历经十几年的发展和竞争,现已成为国际最优秀的科技应用软件之一。这里主要以适用于Windows操作系统的MATLAB5.3版本向读者介绍MATLAB 的使用命令和内容。 一、MATLAB 的进入/退出 MA TLAB 的安装成功后, 系统会在Windows【开始】菜单的【程序】子菜单中加入启动MATLAB命令的图标, 用鼠标单击它就可以启动MATLAB系统,见图2.1。 图2.1 启动MA TLAB 启动MATLAB后, 屏幕上出现MATLAB命令窗口: 图2.2 MA TLAB命令窗口 图2.2的空白区域是MATLAB 的工作区(命令输入区), 在此可输入和执行命令。 退出MATLAB系统像关闭Word文件一样, 只要用鼠标点击MATLAB系统集成界面右上角的关闭按钮即可。 二、MATLAB 操作的注意事项 l 在MA TLAB工作区输入MATLAB命令后, 还须按下Enter键, MA TLAB才能执行你输入的MA TLAB命令, 否则MA TLAB不执行你的命令。 l MATLAB 是区分字母大小写的。 l 一般,每输入一个命令并按下Enter键, 计算机就会显示此次输入的执行结果。(以下用↙表示回车)。如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;”即可以达到目的。如: x= 2 + 3 ↙x=5 x = 2 + 3 ; ↙不显示结果5 l 在MA TLAB工作区如果一个表达式一行写不下,可以用在此行结尾处键入三个英文句号的方法达到换行的目的。如: q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)… -5x+1/2-567/(x+y) l MATLAB 可以输入字母、汉字,但是标点符号必须在英文状态下书写。 l 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):正弦函数 cos(x):馀弦函数 tan(x):正切函数
1、Size 函数用法 例如:1,2,3;4,5,6]是一个2*3的矩阵,则: d = size(X); %返回矩阵的行数和列数,保存在d中 [m,n] = size(X)%返回矩阵的行数和列数,分别保存在m和n中 m = size(X,dim);%返回矩阵的行数或列数,dim=1返回行数,dim=2返回列数 2、Corrcoef 函数用法 corrcoef(x,y)表示序列x和序列y的相关系数,得到的结果是一个2*2矩阵,其中对角线上的元素分别表示x和y的自相关,非对角线上的元素分别表示x 与y的相关系数和y与x的相关系数,两个是相等的 3、sort函数用法 sort(X) 功能:返回对向量X中的元素按列升序排列的新向量。 [Y, I] = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值'ascend'为升序,'descend'为降序 4、Legend 函数用法 legend(string1,string2,string3,┈) 分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标。 例如: plot(x,sin(x),?.b?,x,cos(x),?+r?) legend(…sin?,?cos?) //这样就可以把”.”标识为”sin”,把”+”标识为“cos” 5、find 函数用法 找到非零元素的索引和值 语法: 1. ind = find(X) 2. ind = find(X, k) 3. ind = find(X, k, 'first') 4. ind = find(X, k, 'last') 5. [row,col] = find(X, ...) 6. [row,col,v] = find(X, ...) 说明: 1. ind = find(X)
实验一基本操作和简单语句输入 一、实验目的和要求 1、熟悉MATLAB的命令窗口 2、掌握MATLAB的一些基本操作,能够进行一般的数值计算 3、实现语句的重调和修改 二、实验内容和步骤 1、启动MATLAB 2、观察MATLAB窗口的组成部分 (1)了解菜单栏各菜单项的功能,用书变打开MA TLAB的各个菜单,在状态栏里显示当前鼠标所指的菜单项的含义 (2)用鼠标指向常用工具栏的每个工具按钮,了解各个工具按钮的含义 3、命令窗口的打开和关闭 (1)查看窗口的打开和关闭 (2)在命令窗口中输入命令a=3;b=4;y=a*b+a/b,然后回车,查看命令显示结果 (3)利用MATLAB中编辑命令行事常用的按键功能,调出上一语句,对它进行修改(如把分号改成逗号,看运行结果),并把运行结果复制到word中保存。 >> a=3;b=4;y=a*b+a/b, y = 12.7500 >> a=3,b=4,y=a*b+a/b, a = 3 b = 4 y = 12.7500 (4)关闭命令窗口
(5)打开命令窗口 4、使用MATLAB帮助 熟悉MATLAB的帮助系统,通过帮助系统了解有关内容 5、在命令窗口中输入demo,将出现MA TLAB的演示窗,通过演示窗,对MATLAB的功能进一步的浏览。 三、试验环境 计算机MA TLAB软件 四、练习 1、调出MATLAB\stateflow的演示实例
2、计算y=x^3+(x-0.98)^2/(x+1.25)^3-5(x+1/x),x=2,x=3时的值 3、计算cos60?-√(9-√2) 4、已知a=3,A=4,b=a^2,B=b^2-1,c=a+A-2B,C=a+B+2c,求C
Toolbox工具箱序号工具箱备注一、数学、统计与优化 1 Symbolic Math Toolbox 符号数学工具箱Symbolic Math Toolbox?提供用于求解和推演符号运算表达式以及执行可变精度算术的函数。您可以通过分析执行微分、积分、化简、转换以及方程求解。另外,还可以利用符号运算表达式为 MATLAB、Simulink 和Simscape?生成代码。 Symbolic Math Toolbox 包含 MuPAD 语言,并已针对符号运算表达式的处理和执行进行优化。该工具箱备有 MuPAD 函数库,其中包括普通数学领域的微积分和线性代数,以及专业领域的数论和组合论。此外,还可以使用 MuPAD 语言编写自定义的符号函数和符号库。MuPAD 记事本支持使用嵌入式文本、图形和数学排版格式来记录符号运算推导。您可以采用 HTML 或 PDF 的格式分享带注释的推导。 2 Partial Differential Euqation Toolbox 偏微分方程工具箱偏微分方程工具箱?提供了用于在2D,3D求解偏微分方程(PDE)以及一次使用有限元分析。它可以让你指定和网格二维和三维几何形状和制定边界条件和公式。你能解决静态,时
域,频域和特征值问题在几何领域。功能进行后处理和绘图效果使您能够直观地探索解决方案。你可以用偏微分方程工具箱,以解决从标准问题,如扩散,传热学,结构力学,静电,静磁学,和AC电源电磁学,以及自定义,偏微分方程的耦合系统偏微分方程。 3 Statistics Toolbox 统计学工具箱Statistics and Machine Learning Toolbox 提供运用统计与机器学习来描述、分析数据和对数据建模的函数和应用程序。您可以使用用于探查数据分析的描述性统计和绘图,使用概率分布拟合数据,生成用于 Monte Carlo 仿真的随机数,以及执行假设检验。回归和分类算法用于依据数据执行推理并构建预测模型。 对于分析多维数据,Statistics and Machine Learning Toolbox 可让您通过序列特征选择、逐步回归、主成份分析、规则化和其他降维方法确定影响您的模型的主要变量或特征。该工具箱提供了受监督和不受监督机器学习算法,包括支持向量机(SVM)、促进式 (boosted) 和袋装 (bagged) 决策树、k-最近邻、k-均值、k-中心点、分层聚类、高斯混合模型和隐马尔可夫模型。 4 Curve Fitting Toolbox 曲线拟合工具箱Curve Fitting Toolbox?提供了用于拟合曲线和
MATLAB功能简介 MATLAB是“Matrix&Laboratory”两个词的组合,意为“矩阵实验室”。MATLAB 的主要功能有数值分析、数值与符号计算、数字图像和信号处理、工程与科学绘图、控制系统和通讯系统的设计和仿真等。 MATLAB版本描述 MATLAB的版本从1984年发布的MATLAB1.0发展到如今的MATLAB8.5。我们小组所用的版本是MATLAB7.0,故在此主要介绍MATLAB7.0版本。 MATLAB7.0在2004年发布,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB推荐理由 MATLAB和Mathematica、Maple并称为三大数学软件,基于其数值分析、数值与符号计算、数字图像与信号处理等各方面的强大功能,MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。 MATLAB作为强大的数学软件有其独特的优势特点。MATLAB是高级的矩阵语言,MATLAB的语言是基于最流行的C++语言基础上的,而且更加简单,更符合对数学表达式的书写格式,这种语言可移植性好,课拓性极强,也因此,MATLAB 比较适合我们学习、掌握并使用。再者,MATLAB高效的数值计算、符号计算功能,完备的图形处理功能,使我们从繁杂的数学运算中解脱出来,实现计算结果和编程的可视化。 MATLAB的功能强大而丰富,值得每一位同学去学习该软件的应用,并应用于解决实际生活中的问题。然而因为能力有限,故在此我们小组着重向同学们介绍MATLAB在曲线拟合方面的应用。 众所周知,对于我们大学生(特别是理工科的大学生)而言,我们需要在实验室中完成各种不同的实验,得到一组组的、众多的看似关系不明显的实验数据,而同学们对于这些数据的处理往往是最头疼的。那一个个看似无规律的数字的处理实在是让不少同学大伤脑筋,而往往实验最关键的部分就是对实验数据的处理,因此,一旦实验数据处理方法不理想,很有可能,由此得到的实验结论也会有较大的偏差。由此可见,对于实验数据的处理,对于我们大学生来说是一项多么重要的能力。所以,我们小组向各位强烈推荐MATLAB这款软件,MATLAB在曲线拟合方面的强大应用,极大地方便了我们对于实验数据的有效处理,并有助于我们
matlab 基本语句 1.循环语句for for i=s1:s3:s2 循环语句组 end 解释:首先给i赋值s1;然后,判断i是否介于s1与s2之间;如果是,则执行循环语句组,i=i+s3(否则,退出循环.);执行完毕后,继续下一次循环。 例:求1到100的和,可以编程如下: sum=0 for i=1:1:100 sum=sum+i end 这个程序也可以用while语句编程。 注:for循环可以通过break语句结束整个for循环. 2.循环语句while 例:sum=0;i=1; while(i<=100) sum=sum+i;i=i+1; end 3.if语句 if(条件) 语句 end if(条件) 语句 else 语句 end if(条件) 语句 elseif 语句 end 4.关系表达式: =,>,<,>=,<=,==(精确等于)
5.逻辑表达式:|(或),&(且) 6.[n,m]=size(A)(A为矩阵) 这样可以得到矩阵A的行和列数 n=length(A),可以得到向量A的分量个数;如果是矩阵,则得到矩阵A的行与列数这两个数字中的最大值。 7.!后面接Dos命令可以调用运行一个dos程序。 8.常见函数: poly():为求矩阵的特征多项式的函数,得到的为特征多项式的各个系数。如 a=[1,0,0;0,2,0;0,0,3],则poly(a)=1 -6 11 -6。相当于poly(a)=1入^3+(-6)入^2+11入+(-6)。 compan():可以求矩阵的伴随矩阵. sin()等三角函数。 MATLAB在数学建模中的应用(3) 一、程序设计概述 MATLAB所提供的程序设计语言是一种被称为第四代编程语言的高级程序设计语言,其程序简洁,可读性很强,容易调试。同时,MATLAB的编程效率比C/C++语言要高得多。 MATLAB编程环境有很多。常用的有: 1. 命令窗口 2. word窗口 3. M-文件编辑器,这是最好的编程环境。 M-文件的扩展名为“.m”。M-文件的格式分为两种: ①l M-脚本文件,也可称为“命令文件”。 ②M-函数文件。这是matlab程序设计的主流。l 保存后的文件可以随时调用。 二、MATLAB程序结构 按照现代程序设计的观点,任何算法功能都可以通过三种基本程序结构来实现,这三种结构是:顺序结构、选择结构和循环结构。其中顺序结构是最基本的结构,它依照语句的自然顺序逐条地执行程序的各条语句。如果要根据输入数据的实际情况进行逻辑判断,对不同的结果进行不同的处理,可以使用选择结构。如果需要反复执行某些程序段落,可以使用循环结构。 1 顺序结构 顺序结构是由两个程序模块串接构成。一个程序模块是完成一项独立功能的逻辑单元,它可以是一段程序、一个函数,或者是一条语句。 看图可知,在顺序结构中,这两个程序模块是顺序执行的,即先执行<程序模块1>,然后执行<程序模块2>。 实现顺序结构的方法非常简单,只需将程序语句顺序排列即可。 2 选择结构 在MATLAB中,选择结构可由两种语句来实现。
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 操作的注意事项 ●在MATLAB工作区输入MATLAB命令后, 还须按下Enter键, MATLAB才能执行你输入的MATLAB命 令, 否则MATLAB不执行你的命令。 ●MATLAB 是区分字母大小写的。 ●一般,每输入一个命令并按下Enter键, 计算机就会显示此次输入的执行结果。(以下用↙表示 回车)。如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;” 即可以达到目的。如: x= 2 + 3↙ x=5 x = 2 + 3 ; ↙不显示结果5 ●在MATLAB工作区如果一个表达式一行写不下,可以用在此行结尾处键入三个英文句号的方法达 到换行的目的。如: q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)… -5x+1/2-567/(x+y) ●MATLAB 可以输入字母、汉字,但是标点符号必须在英文状态下书写。 ●MATLAB 中不需要专门定义变量的类型,系统可以自动根据表达式的值或输入的值来确定变量的 数据类型。 ●命令行与M文件中的百分号“%”标明注释。在语句行中百分号后面的语句被忽略而不被执行, 在M文件中百分号后面的语句可以用Help命令打印出来。 三、MATLAB的变量与表达式 ●MATLAB的变量名 MATLAB的变量名是用一个字母打头,后面最多跟19个字母或数字来定义的。如x,y,ae3,d3er45都是合法的变量名。应该注意不要用MATLAB中的内部函数或命令名作为变量名。MATLAB中的变量名是区分大小写字母的。如在MATLAB中,ab与 Ab表示两个不同的变量。列出当前工作空间中的变量命令为Who 将内存中的当前变量以简单形式列出; Whos 列出当前内存变量的名称、大小、类型等信息; Clear 清除内存中的所有变量与函数。 ●MATLAB的运算符 数学运算符:+(加号),-(减号),*(乘号), \(左除), / (右除), ^ (乘幂) 关系运算符:< (小于), > (大于), <= (小于等于), >= (大于等于),