01 Matlab入门

Download Report

Transcript 01 Matlab入门

Matlab入门
•
•
•
•
•
•
一、Maltab简介
二、Matlab的交互式操作
三、Matlab中的数值
四、Matlab中的变量
五、基本数学函数
六、运算符和表达式
一、MATLAB简介
1、Matlab概况
• Matlab: Matrix Laboratry 矩阵实验室。
• MATLAB is the language of technical computing。
• MATLAB 是一种用于算法开发、数据分析、可视化和数值
计算的程序设计环境。使用 MATLAB,您可以较使用传统
的编程语言(如 C、C++ 和 Fortran)更快地解决技术计
算问题。
• MATLAB 的应用范围非常广,包括线性代数、统计、傅立
叶分析、筛选、优化、数值积分、信号、图像处理、通讯、
控制系统设计、测试和测量、财务建模和分析、计算生物
学等众多应用领域。
• 附加的工具箱(Toolbox,单独提供的专用 MATLAB 函数
集)扩展了 MATLAB 环境,以解决这些应用领域内特定
类型的问题。
2、Matlab 的发展
Version
Release Name
MATLAB 1 / 2 / 3.x / 4
发布时间
1984 - 1992
MATLAB 4.2c
R7
1994
MATLAB 5.0 / 5.1 / 5.2 / 5.3
R8 / R9 / R10 /R11
1996 - 1999
MATLAB 6.0 / 6.1 / 6.5
R12 / R12.1 / R13
2000 - 2003
MATLAB 7 / 7.0.1 / 7.0.4 / 7.1
R14 / sp1 / sp2 / sp3
2004 - 2005
MATLAB 7.2 / 7.3
R2006a / R2006b
2006
MATLAB 7.4 / 7.5
R2007a / R2007b
2007
MATLAB 7.6 / 7.7
R2008a / R2008b
2008
MATLAB 7.8 / 7.9 / 7.9.1
R2009a / R2009b / R2009bsp1
2009
MATLAB 7.10 / 7.11 / 7.11.1
R2010a / R2010b / R2010bsp1
2010
MATLAB 7.12 / 7.13
R2011a / R2011b
2011
MATLAB 7.14 / 8.0
R2012a / R2012b
2012
MATLAB 8.1 / 8.2
R2013a / R2013b
2013
MATLAB 8.3
R2014a
2014
3、Matlab 工作界面(7.x)
当前工作目录
更改当前
工作目录
内存工作空间
命令
提示符
Command Window
Matlab 工作界面(8.x)
当前工作
目录
命令
提示符
Command Window
内存工作
空间
(1)Command Window
命令窗口进行各种MATLAB操作的最主要窗口。可键入各
种送给MATLAB运行的指令、函数、表达式;显示除图形外的
所有运算结果;运行错误时,给出相关的出错提示。命令窗口
对关键字、字符串、注释、出错信息等采用不同的颜色表示。
在窗口内选中内容,点击鼠
标右键,可弹出相应的快捷
命令菜单。
执行选中的内容
打开相应的文件
显示相应的帮助信息
清空窗口中显示的内容
(2)Command History窗口
该窗口中记录已经运行过的指令、函数、表达式,及它们
运行的日期、时间。该窗中的所有指令、文字都允许复制、重
运行及用于产生M文件。选中相应的命令历史记录,点击鼠标
右键,可弹出相应的快捷命令菜单。
执行选中的历史记录
删除选中的历史记录
从第一条记录删除到
选中的历史记录
删除所有历史记录
(3)Workspace窗口
该窗口中列出MATLAB工作空间中所有的变量名、大小、字
节数;在该窗中,可对变量进行观察、图示、编辑、提取和保
存。选中工作区中的变量,点击鼠标右键,可弹出相应的快捷
命令菜单。
在变量编辑器中打开
选中的变量
将选中的变量存盘
为.mat 格式二进制文
件
在matlab中生成选中
的变量的副本
删除选中的变量
重命名选中的变量
编辑选中的变量的值
(4)Current Directory窗口
在当前目录(文件夹)窗口中,显示子目录、M文件、MAT
文件等。对该窗口中的M文件,可直接进行复制、编辑和运行;
窗口中的.mat数据文件,可直接送入MATLAB工作内存。此外,
对该界面上的子目录,可进行Windows平台的各种标准操作。
(5)更改Matlab的工作界面
通过这四个按钮,matlab工作界面中的
每个子窗口随时都可以:最小化、最大
化、以单独窗口显示(undock)、关闭。
使用Desktop菜单中的
命令,还可以更改子窗
口的位置、大小。
也可左键按住子窗口的标题
栏,拖动鼠标,移到合适位置再
释放鼠标来更改子窗口的位置。
也可将鼠标移动到子窗
口的上、下、左、右边界,
出现上下(或左右)箭头标
记时,按住并拖动鼠标来更
改子窗口的大小。
选择菜单Desktop : Desktop Layout : default
可以恢复matlab的默认界面。
(6)设置Maltab的一些选项
file菜单的Preferences…命令,会打开一个
Preferences窗口,在这个窗口中,选中左侧的各个条
目,用户就可以更改matlab中的相应设置,如字体、
颜色、工具条等等。
4、matlab的帮助系统及其使用
(1)matlab的帮助系统的三种形式
帮助形式
特
点
文本形式;最可信、最原始;不适于系统阅
命令窗帮助子系统 读。直接在命令窗口中,通过help命令获得;
所有包含在M文件之中的帮助注释内容
HTML形式;系统叙述MATLAB规则和用法;
适于系统阅读和交叉查阅;最重要的帮助形
帮助导航系统
式。可用doc、docsearch等命令获取指定的
帮助。
包括各种PDF文件、视频演示文件、各种讨
Web帮助
论组等。通过Help菜单Web Resources链
接访问。
(2) 函数搜索指令
在“知道具体函数指令名称,但不知道该函数如何使用”
的场合,运用函数搜索指令help、helpwin、doc能很好地获得
帮助信息。
函数搜索指令help
help
列出所有函数分组名(Topic Name)
help /
列出matlab中运算符号及特殊符号的帮助信息
help TopicName
列出指定名称函数组中的所有函数,如 help elfun
help FunName
给出指定名称函数的使用方法,如 help sin
elfun:Elementary math functions 基本数学函数组
help 搜索的资源是M文件帮助注释区的内容,这部分资源用纯文
本及超链接形式写成。它简扼地叙述该函数的调用格式和输入输出量
含义。该帮助内容最原始,但也最真切可靠 。搜索的结果就显示在
Command Window中。
函数搜索指令helpwin
helpwin
列出所有函数分组名(Topic Name)
helpwin /
列出matlab中运算符号及特殊符号的帮助信息
helpwin TopicName 列出指定名称函数组中的所有函数,如 helpwin elmat
helpwin FunName
给出指定名称函数的使用方法,如 helpwin eye
elmat:Elementary matrices and matrix manipulation
基本矩阵和矩阵操作函数组
eye:该函数生成单位阵
helpwin搜索的资源还是M文件帮助注释区的内容,与help
命令的搜索结果相同,但结果不是显示在Command Window中,
而是显示在Help window(帮助浏览器窗口)中。
函数搜索指令doc
doc
打开帮助浏览器
doc TopicName
列出指定名称函数组中的所有函数,如 doc graph2d
doc FunName
给出指定名称函数的使用方法,如 doc plot
graph2d:二维绘图函数组
plot:由给定的x和y数据,在直角坐标系XOY中绘制二维图形。
doc搜索是在HTML文件构成的帮助子系统中进行的。HTML
文件是根据M文件资源编写的,内容比M文件帮助注释详细。该
子系统,由于采用“超链接”机理,因此检索、查阅比较方便。
(3)词条搜索指令
在“想解某具体问题,但不知道有哪些函数指令可以使用”
的场合,词条搜索指令也许比较有用。
lookfor KeyWord
对M文件H1行(M文件帮助注释区中的第一行)
进行单词条检索
lookfor KeyWord -all
对M文件的整个帮助注释区进行单词条检索
docsearch
对HTML子系统进行多词条检索。docsearch搜索
是在HTML文件构成的帮助子系统中进行的。它的
搜索功能强、效率高,搜索到的内容也比较详细。
功能与帮助导航器中的“Search搜索窗”相同。
docsearch使用举例 (doc docsearch)
docsearch plot
搜索所有包含单词plot的页面
docsearch('plot tools')
docsearch('plot AND tools')
搜索所有既包含单词plot又包含单词
tools的页面
docsearch('plot OR tools')
搜索所有包含单词plot,或者包含单词
tools的页面
docsearch('plot NOT tools')
搜索所有包含单词plot,但是不包含单
词tools的页面
docsearch('plot AND tool NOT FIG')
搜索所有包含单词plot和tool,但是不
包含单词FIG的页面
docsearch('"plot tools"')
搜索所有包含短语plot tools的页面
docsearch('plot* tools')
搜索所有既包含以plot开头的单词,又
包含单词tools的页面
搜索条件可用逻辑运算符AND、OR、 NOT连接,NOT的优先级最高,OR次之,
AND最低,运算符要大写
二、Matlab的交互式操作
1、交换式操作举例
例1:用交互式方式计算 [12  2  (7  4)]  3  7
2
3
(1)用键盘在MATLAB指令窗中输入以下内容
>>(12+2*(7-4))/3^2*7^(1/3)
>> 是命令提示符,不要输入。数学表达式中表示优先次序的各
种括号,如{ },[ ]在matlab中都应以英文的圆括号( )输入。
(2)在表达式输入完成后,按 Enter 键,该指令就被执行;
(3)在指令执行后,MATLAB指令窗中将显示以下结果。
ans =
3.8259
ans 是matlab中的默认变量。这个例子输入
了一个表达式,但没有将其赋值(=)给一个具
体的变量,matlab就将其赋值给 ans
例2:用交互式方式绘制函数  10  x  10 时,
函数 y  sin  x  的图形。
用键盘在MATLAB指令窗中依次输入以下内容并
回车执行:
>>x = -10:0.1:10
>>y = sin(x)
>>plot(x,y)
2、常用的交互式操作命令
clc
清除命令窗口中显示的内容
clear command window
home
滚动命令窗口中的内容,使得光标正好显示在窗
口的左上角
将命令窗口中的文本保存至文件中
清除工作内存中的所有变量
打开M文件编辑器
退出matlab
diary
clear
edit
exit 或 quit
3、交互式操作中指令行的快捷编辑操作
为了操作方便,MATLAB不但允许用户在指令窗中对输入的
指令行进行各种编辑和运行,而且允许用户对过去已经输入的指
令行进行回调、编辑和重运行。具体的操作方式如下表:
键
名
作
用
键
名
作
用

前寻式调回已输入过的
指令行
Home
使光标移到当前行的首
端

后寻式调回已输入过的
指令行
End
使光标移到当前行的尾
端

在当前行中左移光标
Delete
删去光标右边的字符

在当前行中右移光标
Backspace
删去光标左边的字符
PageUp
前寻式翻阅当前窗中的
内容
PageDown
后寻式翻阅当前窗中的
内容
Esc
清除当前行的全部内容
三、Matlab中的数值
1、实数
在MATLAB中,实数在输入和显示时,采用十进制,可以
带小数点( . )、符号( +, -, e,E)。例如:
300, -10.1, 0.0012, 1e3, 2.3E-3, -4.5e-1
输入Matlab 中的实数,若未明确指定数据类型,默认情况
下,在内存中都采用IEEE754浮点算法存储为双精度(double)类
型,每个数值占8个字节。
2、复数( complex )
MATLAB中可以直接处理复数。在进行复数计算时,不必像
C语言那样把实部、虚部分开处理。为描述复数,虚数单位用预
定义变量 i 或 j 表示。
虚数单位:
i  j  1
复数的输入:
>>z1=3+4*i
>>z2=1-2*I
>>z=5*exp(i*pi/6)
复数的存储:实、虚部存储为double,每个复数占16个字节。
复数的运算:在Matlab中无需特殊处理,直接进行。
>>z3=z1*z2
>>z4=z1/z2
>>z5=(z3-z4)^3
3、控制数值的输出格式( format )
Matlab 中数值的输出格式可以通过 format 命令指定.
format 只改变数值的输出形式,不改变数值在内存中的存储。
格式
解释
例
format
同short
3.1416
format short
4位小数
3.1416
format long
14位小数
3.14159265358979
format short e
短格式e方式(科学计数格式) 3.1416e+000
format long e
长格式e方式,15位小数
3.141592653589793e+000
format short g
短格式g方式
3.1416
format long g
长格式g方式
3.14159265358979
format bank
2位小数
3.14
format rat
有理形式(最接近的分数) 355/113
format +
+,-
+
四、Matlab中的变量、运算符、表达式
1、变量(variable)
Matlab不要求对所使用的变量进行事先声明,也不需要指
定变量类型,Matlab 会自动根据所赋予变量的值或对变量所
进行的操作来确定变量的类型。
赋值符号:
=
这里是英文单引号
a=3
z=1-2*i
s= '12'
变量a为
double
变量z为
double complex
变量s为
char(字符串)
在赋值过程中,如果变量已经存在,Matlab 会用新值代
替旧值,并以新的变量类型代替旧的变量类型。
2、变量名的命名规则
 变量名必须以字母开头,只可以包含英文字母(大小写)、
数字和下划线_ 。其它字符,如空格、减号、星号都不能使用
 变量名长度不超过 63
版本不能超过31个)
( Matlab6.5.1 版本以上 ) (老
可以用 namelengthmax 函数查看你正在使用的matlab版
本允许的变量名最多包含多少个字符
 变量名区分大小写,如ab和Ab是两个不同的变量
请指出下面5个变量名中,哪些是合法的?
abcd-2
a变量
xyz_3
ABCfgh
3chan
3、预定义变量( Predefined variable )
• pi:圆周率(pi只能用小写字母)
• Inf,inf:无穷大,如1/0
• eps:浮点运算相对精度
eps = 2-52 ≈ 2.2204×10-16
• NaN,nan: not a number 非数,如0/0
Matlab中,上面这些量称为系统预定义变量
(Predefined variable),定义变量时,不要使用这些名
称!
4、内存变量查阅、删除的指令
who
who(‘a*’)
列出matlab内存中的所有变量名
列出matlab内存中的所有以a开头的变量名
whos
whos(‘a*’)
clear
clear a
列出matlab内存中所有变量的详细信息
列出matlab内存中所有以a开头的变量的详细信息
清除matlab工作空间中保存的变量
清除变量a
清除工作空间中名为x,y,…的变量(或函数)
clear x y …
变量名x y之间是空格,不能用逗号
clear all
清除工作空间中所有的变量、全局变量、编译过的
M函数和MEX链接。
五、基本数学函数
1、三角函数
acos(x)
反余弦
cos(x)
余弦
acot(x)
反余切
cot(x)
余切
acsc(x)
反余割
csc(x)
余割
asec(x)
反正割
sec(x)
正割
asin(x)
反正弦
sin(x)
正弦
atan(x)
反正切
tan(x)
正切
atan2(y,x)
四象限反正切
hypot(a,b)
平方和的平方根
使用doc命令可查看函数的详细帮助!如:doc atan2
2、双曲函数
acosh(x)
反双曲余弦
cosh(x) 双曲余弦
acoth(x)
反双曲余切
coth(x)
双曲余切
acsch(x)
反双曲余割
csch(x)
双曲余割
asech(x)
反双曲正割
sech(x) 双曲正割
asinh(x)
反双曲正弦
sinh(x)
双曲正弦
atanh(x)
反双曲正切
tanh(x)
双曲正切
3、指数和对数函数
exp(x)
ex
expm1(x)
ex-1
nextpow2(x)
p = nextpow2(x) ,满足2^p >= abs(x)
nthroot(x,n)
n
x
x为实数,n为正整数。
x为负时,n必须为奇数
pow2(x)
2x
realpow(x,y)
实数的幂
realsqrt(x)
非负实数的平方根
sqrt(x)
(复数)平方根
对数函数
log(x)
自然对数ln(x)
log1p(x)
ln(1+x)
log2(x)
log2(x)
log10(x)
log10(x) ,即 lg(x)
reallog(x)
非负实数(数组)的自然对数
4、取整函数和余数
round(x)
fix(x)
floor(x)
ceil(x)
mod(X,Y)
rem(X,Y)
4舍5入到整数
舍入到最接近 0 的整数
舍入到最接近 -∞ 的整数
舍入到最接近 ∞ 的整数
模:mod(X,Y) = X - n*Y, n = floor(X/Y)
余数:rem(X,Y) = X - n*Y, n = fix(X/Y)
5、离散数学函数
factor(n)
返回n的素因数(素因子)
factorial(n) 返回n的阶乘
gcd(a,b)
返回a,b的最大公约数
isprime(n) 判断n是否为素数,是则返回True
lcm(a,b)
返回a,b的最小公倍数
primes(n) 列出小于等于n的所有素数
rat(x)
rats(x)
返回x的分数连加求和形式,
rat(pi) 返回 3 + 1/(7 + 1/(16))
返回x的最接近的有理分数形式,
rats(pi) 返回 355/133
6、与复数相关的一些函数
i
z  a  bi  re
real  z 
imag  z 
给出复数z的实部a  r cos 
给出复数z的虚部b  r sin 
abs  z 
给出复数z的模r  a  b
angle  z 
b
给出复数z的相角  arctg
a
给出复数z的共轭复数z
conj  z 
2
2
六、运算符和表达式
1、两个数之间的数学运算符
数学运算
运算符
加
+
*
/
\
^
()
减
乘
右除
左除
幂
圆括号
运算优先级:
指数运算级别最高,
乘除运算次之,
加减运算级别最低。
括号可以改变运算的次序。
2、两个数之间的关系运算符
关系运算
运算符
大于
相等等
>
>=
<
<=
==
不相等
~=
大于等于
小于
小于等于
运算优先级:
这六个关系运算符级别相同。
3、两个数之间的逻辑运算符
逻辑运算
与
或
非
运算符
&
|
~
运算优先级:
非运算级别最高,
与运算次之,
或运算级别最低。
括号可以改变运算的次序。
任何非 0 数都被看作是“逻辑真”,只有 0 才被认为是“逻
辑假”。
输入
与
或
非
异或
A
B
A&B
A|B
~A
xor(A,B)
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
4、Matlab表达式
表达式由变量名、运算符和函数名组成。
表达式将按与常规相同的优先级自左至右执行运算。
书写表达式时,赋值符“=”和运算符两侧允许有空格,以增加
可读性。
练习: 在Matlab的命令窗口用交互
式方式完成下面的计算
1 计算y1 
2sin  0.3 
1 5
 2  求x  2.13 时y2
;
 x  0.98 

3
 x  1.25 
2
x
3
1

 5  x   的值;
x

 3已知a  3, A  4, b  a 2 , B  b 2  1, c  a  A  2 B, C  a  B  2c
求:C ;

z1 z2
 4  复数z1  3  4i, z2  1  2i, z3  2e , z 
z3
6
i
求:复数z的实部、虚部、模和相角。