matlab基础准备及入门1.docx
- 文档编号:3160567
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:49
- 大小:892.15KB
matlab基础准备及入门1.docx
《matlab基础准备及入门1.docx》由会员分享,可在线阅读,更多相关《matlab基础准备及入门1.docx(49页珍藏版)》请在冰点文库上搜索。
matlab基础准备及入门1
MATLAB及其应用
MATLABandItsApplication
武汉大学电子信息学院
陈晶
课程邮箱:
whumatlab2012@
keyword:
matlab
学习目的:
●掌握用计算机建模、计算,以及用图表形象表达分析结果从而促进逻辑思维的系统方法。
●缩短研究周期,加快探索步伐,激发创作灵感。
●不希望学生在编程上化太多时间,课程目的不是学习编程。
●紧密结合科学的前沿。
●论文=Matlab+word。
MATLAB的特点:
●编写程序犹如在演算纸上排列出公式与求解问题。
●语法非常简单,编程效率高,易学易懂,方便实用。
没有编程基础的学生也可以很快地编写出程序。
●可以直接在Word中被调用,使用相当方便实用。
●强大的科学计算能力、卓越的可视化功能、开放式可扩展环境。
不同的应用学科几十种应用工具箱
a.研究人员可以直观、方便地进行分析、计算和设计工作,
b.应用工具箱可以更进一步简化编程,甚至给很复杂的问题提供“傻瓜照相式”的解决办法,极大地提高了工作效率。
●可实现MATLAB与VisualC++等通用编程平台的混合编程。
取长补短,以提高程序的运行效率,丰富程序开发的手段。
课程主要内容:
基础准备及入门
符号计算
数值数组及向量化运算
数值计算
数据和函数的可视化
M文件
Notebook
…….
教材:
《MATLAB教程》R2010a(2009年修订)……..
《精通MatlabR2011a》
网上资源:
国内中文站点:
1.MATLAB教学网
国外站点:
1.MathWorks公司主页
第1章基础准备及入门
一MATLAB正常运行所必须具备的基础条件;
二MATLAB及其操作桌面的基本使用方法;
三MATLAB的帮助系统。
.1MATLAB的安装
推荐使用MATLAB7版本
例如:
MATLAB7.0,…,MATLAB7.3(MATLABR2006b),
MATLAB7.10(R2010a),…,R2011b,R2012a,……
MathWorks公司每年进行两次产品发布,时间分别在每年的3月和9月。
表1.1-1MATLAB各组件的功用
组件名称
功用
1.必须选择的本原性组件
MATLAB
这是最核心的部分。
没有它就没有MATLAB环境。
有了它,就可以对各类数据(除符号类数据以外)进行操作、运算和可视化。
2.最常选的通用性工具包组件
SymbolicMathToolbox
符号类数据的操作和计算。
ExtendedSymbolicMathToolbox
更丰富的符号计算函数和指令
3.其他通用性工具包组件
Simulink
不用编写程序,利用方块图实现建模和仿真;主要用于研究微分和差分方程描写的非线性动态系统。
OptimizationToolbox
包含求函数零点、极值、规划等优化程序。
MatlabCompiler
把MATLAB的M文件编译成独立应用程序。
MatlabbuilderforExcel
与MATLABCompiler配合使用,生成Excel插件。
4.常用专业性工具包组件
ControlSystemToolbox
MATLAB涉及控制的工具包有10多个,而本栏工具包是最基本的,是解决控制问题所必选的。
至于其他控制工具包则是用户根据需要选择的。
SignalProcessingToolbox
是MATLAB信号处理中的基本工具包。
SplineToolbox
内含样条和插值函数。
StatisticsToolbox
包含进行复杂统计分析所需的程序。
5.其他专业性工具包组件(举例)
Stateflow
与Simulink配合使用,主要用于较大型、复杂的(离散事件)动态系统的建模、分析、仿真。
SystemIdentificationToolbox
动态系统辨识。
......
.2Desktop操作桌面的启动
.2.1操作桌面简介
桌面的上层铺放着的界面:
指令窗(CommandWindow)、
当前目录(CurrentDirectory)浏览器、
历史指令(CommandHistory)窗。
工作空间(Workspace)浏览器。
●指令窗
指令、函数、表达式;
显示除图形外的所有运算结果;
给出相关的出错提示。
●历史指令窗
记录已经运作过的指令、函数、表达式
运行的日期、时间
所有指令、文字都允许复制、重运行及用于产生M文件。
●当前目录浏览器
展示着子目录、M文件、MAT文件和MDL文件等。
可进行Windows平台的各种标准操作。
●工作空间浏览器
罗列出MATLAB工作空间中所有的变量名、大小、字节数;
可对变量进行观察、图示、编辑、提取和保存。
●捷径(Start)键
引出通往MATLAB所包含的各种组件、模块库、图形用户界面、帮助分类目录、演示算例等的捷径,以及向用户提供自建快捷操作的环境。
.3CommandWindow运行入门
.3.1CommandWindow指令窗简介
MATLAB指令窗默认地位于MATLAB桌面的右方。
希望得到脱离操作桌面的几何独立指令窗,点击该指令窗右上角的
键。
●让独立指令窗嵌放回桌面,点击CommandWindow右上角的
按钮。
.3.2最简单的计算器使用法
【例1.3-1】求
的算术运算结果。
本例演示:
最初步的指令输入形式和必需的操作步骤。
(12+2*(7-4))/3^2
〖说明〗
●一条指令输入结束后,必须按[Enter]键,那指令才被执行。
●由于本例输入指令是“不含赋值号的表达式”,所以计算结果被赋给MATLAB的一个默认变量“ans”。
它是英文“answer”的缩写。
【例1.3-2】“续行输入”法
由于指令太长,或出于某种需要,输入指令行必须多行书写时,该如何处理?
S=1-1/2+1/3-1/4+1/5-1/6+1/7-1/8
S=1-1/2+1/3-1/4+
1/5-1/6+1/7-1/8
S=1-1/2+1/3-1/4...
+1/5-1/6+1/7-1/8
S=1-1/2+1/3-1/4+...
1/5-1/6+1/7-1/8
S=1-1/2+1/3-1/4+.....
1/5-1/6+1/7-1/8
〖说明〗
●指令执行后,变量S被保存在MATLAB的工作空间(Workspace)中,以备后用。
.3.3数值、变量和表达式
10一数值的记述
MATLAB的数值采用习惯的十进制表示,可以带小数点或负号。
以下记述都合法。
3-990.0019.4561.3e-34.5e33
10二变量命名规则
●变量名、函数名是对字母大小写敏感的。
如:
变量myvar和MyVar表示两个不同的变量。
sin是MATLAB定义的正弦函数名,但SIN,Sin等都不是。
●变量名的第一个字符必须是英文字母,最多可包含63个字符(英文、数字和下连符)。
如:
myvar201是合法的变量名。
●变量名中不得包含空格、标点、运算符,但可以包含下连符。
如变量名my_var_201是合法的,且读起来更方便。
而my,var201由于逗号的分隔,表示的就不是一个变量名。
10三MATLAB默认的预定义变量(PredefinedVariable)
表1.3-1MATLAB中最常用的预定义变量
预定义变量
含义
预定义变量
含义
ans
计算结果的默认变量名
NaN或nan
不是一个数(NotaNumber),如0/0,
eps
机器零阈值
Inf或inf
无穷大,如1/0
nargin
函数输入宗量数目
i或j
虚单元
nargout
函数输出宗量数目
pi
圆周率
realmax
最大正实数
realmin
最小正实数
【例】
formatshorte%5位科学记数表示
RMAd=realmax('double')%默认最大实数
RMAs=realmax('single')%单精度最大实数
IMA64=intmax('int64')%int64整数类型最大
IMA32=intmax%int32整数类型最大
IMA32=intmax('int16')%int16整数类型最大
formatlonge%15位科学记数表示
e1=eps%双精度时的相对精度
e2=eps(100000000)%表达100时的绝对精度
e1=
2.220446049250313e-016
e2=
1.490116119384766e-008
100000000.000000001==100000000
1.000000001==1
pi
1/0
0/0
说明:
●建议:
用户在编写指令和程序时,应尽可能不对表1.3-1所列预定义变量名重新赋值,以免产生混淆。
●被0除是允许的。
它不会导致程序执行的中断,只是在给出警告信息的同时,用一个特殊名称(如Inf,NaN)记述。
10四运算符和表达式
(1)经典教科书上的算术运算符在MATLAB中的表达方式
表1.3-2MATLAB表达式的基本运算符
数学表达式
矩阵运算符
数组运算符
加
a+b
a+b
减
a-b
a-b
乘
a*b
a.*b
除
a/b或b\a
a./b或b.\a
幂
a^b
a.^b
圆括号
()
()
()
〖说明〗
●因为MATLAB面向矩阵/数组设计,标量被看作
的矩阵/数组。
●数组运算的“乘、除、幂”规则与相应矩阵运算根本不同。
数组运算符比矩阵运算符多一个“小黑点”。
●MATLAB用左斜杠或右斜杠分别表示“左除”或“右除”运算。
对标量而言,“左除”和“右除”的作用结果相同。
但对矩阵来说,“左除”和“右除”将产生不同的结果。
(2)MATLAB书写表达式的规则与“手写算式”几乎完全相同。
●表达式由变量名、运算符和函数名组成。
●表达式将按与常规相同的优先级自左至右执行运算。
●优先级的规定是:
指数运算级别最高,乘除运算次之,加减运算级别最低。
●括号可以改变运算的次序。
●书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加可读性。
10五面向复数设计的运算——MATLAB特点之一
为描述复数,虚数单位用预定义变量i或j表示。
●MATLAB的所有运算都是定义在复数域上的。
好处:
在进行运算时,不必像其他程序语言那样把实部、虚部分开处理。
复数
直角坐标表示和极坐标表示之间转换:
real(z)给出复数
的实部
。
imag(z)给出复数
的虚部
。
abs(z)给出复数
的模
。
angle(z)以弧度为单位给出复数
的幅角
。
复数与平面上的点?
【例1.3-4】复数
表达,及计算
。
本例演示:
正确的复数输入法;涉及复数表示方式的基本指令。
(1)经典直角坐标表示法
z1=4+3i%合法,但建议少用或不用
〖说明〗
●在这种书写格式中,3i是一个完整的虚数,在3和i之间不许“空格”存在。
(2)采用运算符构成的直角坐标表示法和极坐标表示法
z2=1+2*i%运算符构成的直角坐标表示法
z3=2*exp(i*pi/6)%运算符构成的极坐标表示法
z=z1*z2/z3
(3)复数的实虚部、模和幅角计算
real_z=real(z)
image_z=imag(z)
magnitude_z=abs(z)
angle_z_radian=angle(z)%弧度单位
angle_z_degree=angle(z)*180/pi%度数单位
【例1.3-5】图示复数
的和。
z1=4+3*i;
z2=1+2*i;z12=z1+z2;
%以下用于绘图
clf,holdon%clf清空图形窗。
逗号用来分隔两个指令。
plot([0,z1,z12],'-b','LineWidth',3)
plot([0,z12],'-r','LineWidth',3)
plot([z1,z12],'ob','MarkerSize',8)
holdoff,gridon,
axisequal
axis([0,6,0,6])
text(3.5,2.3,'z1')
text(5,4.5,'z2')
text(2.5,3.5,'z12')
xlabel('real')
ylabel('image')
【例1.3-6】用MATLAB计算
能得到–2吗?
(1)直接计算时,得到处于第一象限的方根。
a=-8;
r_a=a^(1/4)%求3次根
(2)
的全部方根计算如下
%先构造一个多项式
p=[1,0,0,-a];%p是多项式
的系数向量
%指令末尾的“英文状态分号”使该指令运行后,不显示结果。
R=roots(p)%求多项式的根
(3)图形表示
MR=abs(R
(1));%计算复根的模
t=0:
pi/20:
2*pi;%产生参变量在0到2*pi间的一组采样点
x=MR*sin(t);
y=MR*cos(t);
plot(x,y,'b:
'),gridon%画一个半径为R的圆
holdon
plot(R
(2),'.','MarkerSize',30,'Color','r')%画第一象限的方根
plot(R([1,3]),'o','MarkerSize',15,'Color','b')%画另两个方根
axis([-3,3,-3,3]),axissquare;holdoff%保证屏幕显示呈真圆
10六面向数组设计的运算——MATLAB特点之二
标量数据被看作
的数组(Array)数据。
所有的数据都被存放在适当大小的数组中。
为加快计算速度(运算的向量化处理),MATLAB对以数组形式存储的数据设计了两种基本运算:
一数组运算
二矩阵运算
【例1.3-7】实数数组
的“一行”输入法。
本例演示:
二维数组的最基本、最常用输入法;
二维数组输入的三大要素。
(1)在键盘上输入下列内容
AR=[1,3;2,4]
〖说明〗
●在MATLAB中,不必事先对数组维数及大小做任何说明,内存将自动配置。
●二维数组输入的三大要素:
数组标识符“[]”;
元素分隔符为:
空格或逗号“,”;
数组行间分隔符分号“;”或“回车键”。
注意:
所有标点符号都是“英文状态的符号”。
●MATLAB对字母大小写是敏感的。
比如本例中的数组赋给了变量AR,而不是Ar,aR,或ar。
【例1.3-8】实数数组
的“分行”输入法。
AI1=[57;68]
AI2=[57
68]
〖说明〗
●更符合视觉习惯。
●[]内“回车键”用来分隔数组中的行
【例1.3-9】对复数数组
进行求实部、虚部、模和幅角的运算。
本例演示:
复数数组的生成;
MATLAB指令对数组元素“并行操作”的实质。
(1)创建复数数组
AR=[1,3;2,4];AI=[5,7;6,8];A=AR-AI*i%形成复数矩阵
(2)求复数数组的实部和虚部
A_real=real(A)
A_image=imag(A)
(3)求复数数组中各元素的模和幅角——循环法
form=1:
2
forn=1:
2
Am1(m,n)=abs(A(m,n));
Aa1(m,n)=angle(A(m,n))*180/pi;%以度为单位计算幅角
end
end
Am1,Aa1
(4)求复数数组中各元素的模和幅角——直接法
Am2=abs(A)
Aa2=angle(A)*180/pi
〖说明〗
●函数real,imag,abs,angle是同时、并行地作用于数组的每个元素。
对4个元素运算所需的时间大致与对单个元素所需时间相同。
这有利于运算速度的提高。
这是“向量化”运算的一种形式。
●本例给出了循环法求各元素模和幅角的指令。
这是低效的计算方法。
对于MATLAB以外的许多编程语言来说,可能不得不采用“循环”处理方式来解本例。
记住:
对于MATLAB来说,应该尽量摒弃“循环”处理,而采用“向量化”处理方式。
A=rand(200,200);
tic
Am2=abs(A);
toc
A=rand(200,200);
tic
form=1:
200
forn=1:
200
Am1(m,n)=abs(A(m,n));%以度为单位计算幅角
end
end
toc
【例1.3-10】画出衰减振荡曲线
,
的取值范围是
。
本例演示:
展示数组运算的优点;展示MATLAB的可视化能力。
t=0:
pi/50:
4*pi;%定义自变量t的取值数组
y=exp(-t/3).*sin(3*t);%计算与自变量相应的y数组。
注意:
乘法符前面的小黑点。
plot(t,y,'-r','LineWidth',2);%绘制曲线
axis([0,4*pi,-1,1]),xlabel('t'),ylabel('y')
〖说明〗
●本例第二条指令中的“.*”符号表示乘法是在两个数组相同位置上的元素间进行的。
这种乘法称为“数组乘”。
数组乘的引入,不但使得程序简洁自然,而且避免了耗费机时的“循环计算”。
●本例第二条指令是典型的“向量化”处理形式。
【例1.3-11】复数矩阵
矩阵乘积
本例演示:
MATLAB矩阵运算指令的简捷性。
A=[1-5*i,3-7*i;2-6*i,4-8*i]
B=[3+2*i,2+6*i;5+3*i,4-2*i]%复数数组的又一种输入方式
%注意标点符号的作用
C=A*B%矩阵乘法
〖说明〗
●当数组被赋予“变换”属性时,数组就被称为矩阵。
只有当两个矩阵的“内维大小相等”时,矩阵乘法才能进行。
本例中,矩阵A的列数与矩阵B的行数相等,所以可以进行A乘B。
●从表达方式看,“矩阵相乘”的指令格式与“标量相乘”指令格式一样。
矩阵运算如同标准“线性代数”那样简洁易读、自然流畅。
.4CommandWindow操作要旨
前一节直观的感受。
本节对控制指令窗的指令和操作进行较系统的归纳
.4.1指令窗的显示方式
10一默认的输入显示方式
从MATLAB7.0起,指令窗中的字符、数值等采用更为醒目的分类显示:
if,for,end等控制数据流的关键词蓝色字体
非控制指令、数码黑色字体
字符串紫色字体
10二运算结果的显示
在指令窗中显示的输出:
指令执行后,数值结果黑色字体
运行过程中的警告信息和出错信息红色字体
表1.4-1数据显示格式的控制指令
指令
含义
举例说明
format
formatshort
通常保证小数点后四位有效,最多不超过7位;对于大于1000的非整数,用5位有效数字的科学记数形式显示。
314.159被显示为314.1590;
3141.59被显示为3.1416e+003
formatlong
小数点后15位数字表示
3.141592653589793
formatshorte
5位科学记数表示
3.1416e+00
formatlonge
15位科学记数表示
3.14159265358979e+00
formatshortg
从formatshort和formatshorte中自动选择最佳记数方式
3.1416
formatlongg
从formatlong和formatlonge中自动选择最佳记数方式
3.14159265358979
formatrat
近似有理数表示
355/113
formathex
十六进制表示
400921fb54442d18
format+
正数、负数、零分别用+,-,空格表示。
+
formatbank
(金融)元、角、分表示
3.14
formatcompact
显示变量之间没有空行
formatloose
在显示变量之间有空行
〖说明〗
formatshort显示格式是默认的显示格式。
●MATLAB的数值数据通常占用64位(Bit)内存,以16位有效数字的“双精度”进行运算。
●指令窗中直接输入相应的指令,可获得所需的数值计算结果显示格式。
但仅对当前的MATLAB指令窗起作用,一旦MATLAB关闭,这种设置也就随之失效。
10三显示方式的永久设置
{File:
Preferences}
选择字体风格、大小、颜色、数值计算结果显示格式等
[OK]键完成设置
注意:
该设置立即生效,并且这种设置将被永久保留,即这种设置不因MATLAB关闭和开启而改变,除非用户进行重新设置。
.4.2指令行中的标点符号
强调:
标点在MATLAB中的地位极其重要
表1.4-2MATLAB常用标点的功能
名称
标点
作用
空格
(为机器辨认)用作输入量与输入量之间的分隔符;
数组元素分隔符。
逗号
用作要显示计算结果的指令与其后指令之间的分隔;
用作输入量与输入量之间的分隔符;
用作数组元素分隔符号。
黑点
.
数值表示中,用作小数点;
用于运算符号前,构成“数组”运算符。
分号
;
用于指令的“结尾”,抑制计算结果的显示;
用作不显示计算结果指令与其后指令的分隔;
用作数组的行间分隔符。
冒号
:
用以生成一维数值数组;
用做单下标援引时,表示全部元素构成的长列;
用做多下标援引时,表示那维上的全部元素。
注释号
%
由它“启首”的所有物理行部分被看作非执行的注释
单引号对
''
字符串记述符
圆括号
()
改变运算次序;
在数组援引时用;
函数指令输入宗量列表时用。
方括号
[]
输入数组时用;
函数指令输出宗量列表时用。
花括号
{}
胞元数组记述符;
图形中被控特殊字符括号。
下连符
_
(为使人易读)用作一个变量、函数或文件名中的连字符;
图形中被控下脚
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 基础 准备 入门