Matlab软件基础教程.docx
- 文档编号:24543790
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:59
- 大小:894.74KB
Matlab软件基础教程.docx
《Matlab软件基础教程.docx》由会员分享,可在线阅读,更多相关《Matlab软件基础教程.docx(59页珍藏版)》请在冰豆网上搜索。
Matlab软件基础教程
第一部分MATLAB基础与入门
第一章MATLAB简介
在科学和工程应用中,往往要进行大量的科学计算,其中包括以矩阵为基础的数学计算;这些计算一般来说难以用手工精确和快捷地进行,而且众多工程问题一般只要求得到满足精度的近似解就行,从而借助于计算机编写相应的程序进行近似计算就显得很有必要。
目前用Basic、Fortran和C编制计算程序较多,但其既需要对有关算法有深刻的了解,还需要熟练掌握所用语言的语法和编程技巧;这对较多科学和工程技术人员而言,同时具备这两方面的技能就很有难度;而且用上述语言编制程序不但复杂,一般需要大量的人力和物力,而且影响工作进程和效率,为此,美国Mathwork公司于1967年推出了“MatrixLaboratory”(即矩阵实验室,缩写为Matlab)软件包,并不段进行更新和扩充,目前已成为全球应用最广泛最流行的软件之一。
目前最新的6.5版本(windows环境)是一种功能强、效率高便于进行科学和工程计算的交互式软件包。
其中包括:
一般数值分析、矩阵运算、概率统计、建模与系统控制和优化等应用程序。
并集应用程序和图形于一便于使用的集成环境中,在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程,就可解决工程、科学计算和数学学科中的许多问题。
。
不过,Matlab作为一种新的计算机语言,要想运用自如,充分发挥它的威力,也许先系统地学习它。
为此,本书的第一部分主要为了使读者能够掌握Matlab的基础,并在后面的不断应用中,再挖掘其内在的潜力。
首先应该相信的是,由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,从而学习Matlab语言不象学习其它高级语言——如Basic、Fortran和C等那样难以掌握。
第二章MATLAB应用开发环境
在安装完MATLAB后,在桌面上会有一快捷方式MATLAB.exe,如下图所示:
双击MATLAB.exe就可运行MATLAB,初始窗口如下:
从上图中可以看出,MATLAB包含5种工具界面:
发布平台(LaunchPad)Matlab的发布平台为用户提供对工具箱、演示程序和文档的轻松访问,双击“工具箱”、“演示程序”和“帮助”等对应的图标就可获得用户所需的操作。
工作平台浏览器(workspace)工作平台浏览器与发布平台共享一个界面,通过标签切换可选则其一。
Matlab工作平台包括一些Matlab运行过程中用到并储存于内存中的变量(称为数组)集合。
用户通过使用函数、运行M文件或装载将变量保存到工作平台中。
使用工作平台浏览器或函数who和whos来查看工作平台中的变量信息。
使用菜单命令或clear函数来删除平台中的变量。
Matlab运行结束后工作平台不被保持,如果希望在以后的Matlab运行过程中使用该平台,可以使用菜单命令或函数save将平台保存为一个mat文件,文件的扩展名为.mat,读取mat文件可以使用菜单命令或函数load。
在工作平台浏览器中右击一个变量可以看到行编辑器,使用该编辑器可对工作平台的一维或二维常数数组、字符串或字符串数组元素进行编辑和查看。
历史命令(CommandHistory)历史命令窗口中显示了最近在命令窗口运行过的函数的日志,历史命令窗口包括在当前回话和前面回话中执行过的所有函数的记录。
每一个回话的时间和日期显示在这个回话历史的所有记录上面,利用滚动条、向上方向键或者向下方向键可以浏览历史命令窗口的全部内容。
当内容太多,很难找到需要的函数时,就需要删除一些不用的条目。
当前目录浏览器(CurrentDirectory)当前目录浏览器与历史命令公用一个窗口,通过标签切换可选则其一。
Matlab文件的操作使用当前目录并使用搜索路径作为参考点,用户希望运行的任何文件都必须位于当前路径或搜索路径内。
当前目录浏览器用来搜索、查看、打开或修改Matlab相关路径。
另外,也可以通过函数dir、cd和delete来进行路径操作;Matlab使用搜索路径寻找m文件和其他Matlab相关文件,通常Matlab提供的文件和工具箱都包括在搜索路径内。
使用桌面菜单File中的SetPath选项来修改或添加搜索路径,函数path,addpath,rmpath也可分别用来查看添加和删除搜索路径。
命令窗口(CommandWindow)命令窗口是Matlab的重要组成部分,是用户和Matlab交互使用最多的工具。
命令窗口可以用来输入变量和运行函数以及m文件。
如果需要,用户还可以定义该窗口的输入输出特性。
由于命令窗口如此重要,下面分别介绍命令窗口的菜单栏和命令输入区等。
从上图可以看出,窗口的菜单栏由File、View、Web、Window和Help菜单组成。
1.File菜单
单击菜单栏上的File菜单,显示如下图所示的下拉式子菜
下面介绍各子菜单的作用和功能。
New选项鼠标移到File选项的下拉式子菜单New选项,New选项将会向右拉出四项子菜单项:
M-file、Figure、Model和GUI。
单击M-file将打开指定的编辑器,并自动打开一个空白M文件(M文件是包含matlab源代码的文本文件);单击Figure选项将建立一个空白图形窗口;单击Model选项将自动打开防真库和一个用于建立新模型的窗口(用于系统防真);单击GUI选项,matlab将会打开图形界面控制面板,在图形界面控制面板里,用户可以通过选种面板里的图形模板,然后在打开的图形窗口中根据需要绘制各种界面元素,生成精美的图形界面;
Open选项单击Open选项,matlab将用指定的编辑器打开一个已经建立的.m文件、.fig文件或.mdl文件等。
CloseCommandWindow选项只是关闭MATLAB包含6种工具界面中的命令窗口这一个界面,而其他界面保持,若再单击OpenSelection选项,Matlab将用指定的编辑器打开该M文件。
ImportData选项单击该选项将打开一个目录框,在目录框中列出所选目录下的后缀为.Mat(默认)的文件,选中某个文件后,将把该文件中保存的变量载入到当前空间。
SaveWorkspaceAs…选项把当前工作空间的所有变量用后缀为.Mat或其他后缀的ASCll文件保存起来,将来可用Importdata…菜单选项进行装载,单击该选项将弹出一个目录框,用户通过该目录框选折文件的存储目录和名字。
SetPath…选项单击该选项,将打开Matlab的路径浏览器,通过路径浏览器可以更改Matlab执行命令时的搜索路径。
Preferences选项单击该选项,将打开参数设置的对话框,通过设置其中的选项,可以调整命令编辑区的显示格式,包括数字格式、编辑器设置、帮助目录设置、命令窗口字体、背景色设置等选项。
Print选项该选项用于打印命令窗口中的内容,也可以设置一些打印参数。
PrintSelection选项当选中命令编辑区的一部分后,单击该选项即可按照设置进行打印。
ExitMATLAB选项单击ExitMATLAB选项,将关闭Matlab。
2.Edit菜单
单击菜单栏上的Edit菜单,将出现一个如图2-9所示的下拉菜单。
其中Undo、Redo、Cut、Copy和Paste项的作用分别进行撤消上一次操作、重做上一次操作、剪切、复制、粘贴等常规编辑操作。
在命令编辑区输入命令出现错误时,选中想删除的内容,再单击Clear选项,将清除选中的内容(已经敲“回车”键的除外)。
SelectAll选项用于选定文本编辑区的所有内容,以便进一步操作。
命令内容很乱时,可用ClearCommandWindow、ClearCommandHistory、ClearWorkspace项清除CommandWindow、CommandHistory、Workspace的全部内容。
3.View和Window菜单
提供了一些简单的功能,控制Matlab的桌面和窗口。
4.Web菜单
提供了到Matlab网站的几个连接。
5.Help菜单
包括MatlabHelp、UsingCommandWindow、Demos、AboutMatlab等选项。
MatlabHelp选项:
将打开Matlab的帮助窗口,帮助窗口显示了帮助内容分类信息。
UsingCommandWindow:
直接将帮助内容连接到命令窗口使用的帮助文档。
Demos选项:
单击Demos项时,可以演示Matlab提供的例子,熟悉相关部分的用法。
AboutMatlab选项:
单击AboutMatlab将打开关于Matlab6的版本和版权等信息。
第三章MATLAB语言基础
MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化,矩阵是MATLAB的核心。
一、变量与函数
1.变量
MATLAB中变量的命名规则是:
(1)变量名必须是不含空格的单个词;
(2)变量名区分大小写;
(3)变量名最多不超过19个字符;
(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号。
2.特殊变量表
特殊变量
取值
Ans
用于结果的缺省变量名
Pi
圆周率
Eps
计算机的最小数,当和1相加就产生一个比1大的数
Flops
浮点运算数
Inf
无穷大,如1/0
NaN
不定量,如0/0
I,j
i=j=
Nargin
所用函数的输入变量数目
Nargout
所用函数的输出变量数目
Realmin
最小可用正实数
Realmax
最大可用正实数
3.数学运算符号及标点符号
+
加法运算,适用于两个数或两个同阶矩阵相加.
—
减法运算
*
乘法运算
.*
点乘运算
/
除法运算
./
点除运算
^
乘幂运算
.^
点乘幂运算
\
反斜杠表示左除.
(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示该条命令运行的结果;若命令后为分号,则运行结果不显示;
(2)“%”后面所有文字为注释;
(3)“...”表示续行;
4.数学函数
函数
名称
函数
名称
sin(x)
正弦函数
asin(x)
反正弦函数
cos(x)
余弦函数
acos(x)
反余弦函数
tan(x)
正切函数
atan(x)
反正切函数
abs(x)
绝对值
max(x)
最大值
min(x)
最小值
sum(x)
元素的总和
sqrt(x)
开平方
exp(x)
以e为底的指数
log(x)
自然对数
以10为底的对数
sign(x)
符号函数
fix(x)
取整
5.M文件
MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件.函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始;
格式为:
function因变量名=函数名(自变量名)
函数值的获得必须通过具体的运算实现,并赋给因变量.
M文件建立方法:
1.在Matlab中,点:
File->New->M-file
2.在编辑窗口中输入程序内容
3.点:
File->Save,存盘,M文件名必须与函数名一致。
Matlab的应用程序也以M文件保存。
例3.1定义函数f(x1,x2)=100(x2-x12)2+(1-x1)2
1.建立M文件:
fun.m
functionf=fun(x)
f=100*(x
(2)-x
(1)^2)^2+(1-x
(1))^2
2.可以直接使用函数fun.m
例3.2计算f(1,2),只需在Matlab命令窗口键入命令:
x=[12]
fun(x)
二、数组
1、创建简单的数组
x=[abcdef]创建包含指定元素的行向量
x=first:
last创建从first开始,加1计数,到last结束的行向量
x=first:
increment:
last创建从first开始,加increment计数,last结束的行向量
x=linspace(first,last,n)创建从first开始,到last结束,有n个元素的行向量
x=logspace(first,last,n)创建从开始,到结束,有n个元素的对数分隔行向量.
清单:
x=[123458718]
y=1:
7
z=3:
2:
9
v=[yz]
u=linspace(2,9,11)
结果:
x=123458718
y=1234567
z=3579
v=12345673579
u=2.002.703.404.104.805.506.206.907.608.309.00
2、数组元素的访问
(1)访问一个元素:
x(i)表示访问数组x的第i个元素.
(2)访问一块元素:
x(a:
b:
c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1.
(3)直接使用元素编址序号.x([abcd])表示提取数组x的第a、b、c、d个元素构成一个新的数组[x(a)x(b)x(c)x(d)].
清单:
x=1:
9
y=x(2:
2:
8)
z=[x
(1)x(6)x(8)]
结果:
x=123456789
y=2468
z=168
3、数组的方向
前面例子中的数组都是一行数列,是行方向分布的.称之为行向量.数组也可以是列向量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示.;
产生列向量有两种方法:
直接产生例c=[1;2;3;4]
转置产生例b=[1234];c=b’
说明:
以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素;
2、数组的运算
(1)标量-数组运算
数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方
设:
a=[a1,a2,…,an],c=标量
则:
a+c=[a1+c,a2+c,…,an+c]
a.*c=[a1*c,a2*c,…,an*c]
a./c=[a1/c,a2/c,…,an/c](右除)
a.\c=[c/a1,c/a2,…,c/an](左除)
a.^c=[a1^c,a2^c,…,an^c]
c.^a=[c^a1,c^a2,…,c^an]
清单:
a=[1234];
c=2;
a1=a+c
a2=a*c
a3=a./c
a4=a.\c
a5=a.^c
a6=c.^a
结果:
a1=3456
a2=2468
a3=0.50001.00001.50002.0000
a4=2.00001.00000.66670.5000
a5=14916
a6=24816
(2)数组-数组运算
当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的.
设:
a=[a1,a2,…,an],b=[b1,b2,…,bn]
则:
a+b=[a1+b1,a2+b2,…,an+bn]
a.*b=[a1*b1,a2*b2,…,an*bn]
a./b=[a1/b1,a2/b2,…,an/bn]
a.\b=[b1/a1,b2/a2,…,bn/an]
a.^b=[a1^b1,a2^b2,…,an^bn]
清单:
a=[222];
b=[333];
c1=a+b
c2=a.*b
c3=a./b
c4=a.\b
c5=a.^b
结果:
c1=555
c2=666
c3=0.66670.66670.6667
c4=1.50001.50001.5000
c5=888
三、矩阵
1、矩阵的建立
逗号或空格用于分隔某一行的元素,分号用于区分不同的行.除了分号,在输入矩阵时,按Enter键也表示开始一新行.输入矩阵时,严格要求所有行有相同的列.
例3.2m=[1234;5678;9101112]
p=[1111
2222
3333]
特殊矩阵的建立:
a=[]产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零.
b=zeros(m,n)产生一个m行、n列的零矩阵
c=ones(m,n)产生一个m行、n列的元素全为1的矩阵
d=eye(m,n)产生一个m行、n列的单位矩阵
清单:
m=[1234;5678;9101112]
p=[1111
2222
3333]
a=[]
b=zeros(2,3)
c=ones(2,3)
d=eye(2,3)
e=eye(3,3)
结果:
m=1234
5678
9101112
p=1111
2222
3333
a=[]
b=000
000
c=111
111
d=100
010
e=100
010
001
矩阵中元素的操作
(1)矩阵A的第r行:
A(r,:
)
(2)矩阵A的第r列:
A(:
,r)
(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:
A(:
)
(4)取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:
A(i1:
i2,j1:
j2)
(5)以逆序提取矩阵A的第i1~i2行,构成新矩阵:
A(i2:
-1:
i1,:
)
(6)以逆序提取矩阵A的第j1~j2列,构成新矩阵:
A(:
j2:
-1:
j1)
(7)删除A的第i1~i2行,构成新矩阵:
A(i1:
i2,:
)=[]
(8)删除A的第j1~j2列,构成新矩阵:
A(:
,j1:
j2)=[]
(9)将矩阵A和B拼接成新矩阵:
[AB];[A;B]
清单:
a=[123;456;789];
a1=a(2,:
)
a2=a(:
2)
a3=a(:
)
a4=a(1:
2,2:
3)
a5=a(2:
-1:
1,:
)
a6=a(:
3:
-1:
2)
a7=a;a7(1:
2,:
)=[]
a8=a;a8(:
1)=[]
a9=[aa2]
a10=[a;a1]
结果:
a1=456
a2=2
5
8
a3=1
4
7
2
5
8
3
6
9
a4=23
56
a5=456
123
a6=32
65
98
a7=789
a8=23
56
89
a9=1232
4565
7898
a10=123
456
789
456
3、矩阵的运算
(1)标量-矩阵运算
同标量-数组运算。
(2)矩阵-矩阵运算
[1]元素对元素的运算,同数组-数组运算。
[2]矩阵运算:
矩阵加法:
A+B
矩阵乘法:
A*B
方阵的行列式:
det(A)
方阵的逆:
inv(A)
方阵的特征值与特征向量:
[V,D]=eig[A]
清单:
a=[123
456];
b=[12
12
12];
c1=a+a
c2=a*b
c=[273;394;153]
c3=det(c)
c4=inv(c)
[v,d]=eig(c)
结果:
c1=246
81012
c2=612
1530
c=273
394
153
c3=-3
c4=-2.33332.0000-0.3333
1.6667-1.0000-0.3333
-2.00001.00001.0000
v=-0.5515-0.7857-0.2743
-0.73090.4412-0.3391
-0.4020-0.43370.8999
d=3.463500
0-0.27470
000.8112
四、关系与逻辑运算
1、关系操作符
关系操作符
说明
<
小于
<=
小于或等于
>
大于
>=
大于或等于
==
等于
~=
不等于
2、逻辑运算符
逻辑操作符
说明
&
与
︱
或
~
非
3、控制流
MATLAB提供三种决策或控制流结构:
for循环、while循环、if-else-end结构.
这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不是直接加在MATLAB提示符下.
a、for循环:
允许一组命令以固定的和预定的次数重复
forx=array
{commands}
end
在for和end语句之间的命令串{commands}按数组(array)中的每一列执行一次.在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:
,n)
例3.3对n=1,2,…,10,求xn=
的值;
清单:
forn=1:
10
x(n)=sin(n*pi/10);
end
x
结果:
x=0.30900.58780.80900.95111.00000.95110.80900.58780.30900.0000
b、While循环
与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.
whileexpression
{commands}
end
只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串{commands}.
例3.4设银行年利率为11.25%。
将10000元钱存入银行,问多长时间会连本带利翻一番?
清单:
money=10000;years=0;
whilemoney<20000
years=years+1;money=money*(1+11.25/100);
end
years
money
结果:
years=7
money=2.1091e+004
c、If-Else-End结构
(1)有一个选择的一般形式是:
ifexpression
{commands}
end
如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串{commands}.
例3.5
先建立M文件fun1.m定义函数f(x),再在Matlab命令窗口输入fun1
(2),fun1(-1)即可。
清单:
functionf=fun1(x)
ifx>1
f=x^2+1
end
ifx<=1
f=2*x
end
输入:
fun1
(2),fun1(-1)
结果:
5-2
2)有三个或更多的选择的一般形式是:
if(expression1)
{commands1}
elseif(expression2)
{commands2}
el
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 软件 基础教程