什么是 MATLAB?
1,MATLAB 代表 MATrix LABoratory
它的首创者是美国新墨西哥大学计算机系的系主任 Cleve Moler博士,他在教授线性代数课程发现其他语言很不方便,便构思开发了 MATLAB。
最初采用 FORTRAN语言编写,20世纪 80年代后出现了 MATLAB的第二版,全部采用 C语言编写,
1984年 Moler博士和一批数学家及软件专家创建了 MathWorks公司,专门开发 MATLAB。
1993年出现了微机版,到 2005年是 7.1版
2,一种演草纸式的科学计算语言
3,MATLAB 是一高性能的技术计算语言,
– 强大的数值计算和工程运算功能
– 符号计算功能
– 强大的科学数据可视化能力
– 多种工具箱
MATLAB 能干什么?
MATLAB可以进行:
数学计算、算法开发、数据采集
建模、仿真、原型
数据分析、开发和可视化
科学和工程图形应用程序的开发,包括图形用户界面的创建。
MATLAB广泛应用于:
数值计算、图形处理、符号运算、数学建模、系统辨识、小波分析、实时控制、动态仿真等领域。
掌握 MATLAB ……
MATLAB的构成:
MATLAB开发环境:进行应用研究开发的交互式平台
MATLAB 数学与运算函数库:用于科学计算的函数
MATLAB 语言:进行应用开发的编程工具
图形化开发:二维、三维图形开发的工具
应用程序接口 (API):用于与其他语言混编
面向专门领域的工具箱:小波工具箱、神经网络工具箱、信号处理工具箱、图像处理工具箱、模糊逻辑工具箱、优化工具箱、鲁棒控制工具箱等几十个不同应用的工具箱。
Matlab 7.1 环境
菜单栏 -----单击即可打开相应的菜单;
工具栏 -----使用它们能使操作更快捷;
Command Window(命令窗口 )-----用来输入和显示计算结果,其中符号,》,表示等待用户输入;
Launch Pad(分类帮助窗口 );
Workspace(工作区窗口 )-----存储着命令窗口输入的命令和所有变量值;
Command History(历史纪录窗口 )-----记录着每次时间及运行过的所有命令行;
Current Directory(当前目录选择窗口) 。
开发环境包括:命令窗口、图形窗口、编辑窗口。
命令窗口
– 可在提示符后输入交互式命令
– 结果会自动的产生
– 例如:
MATLAB prompt (>>) and cursor (|)
command (typed at prompt)
MATLAB output
图形窗口在窗口中输入:
Plot([1,2,4,9,16],[1,2,3,4,5])
MATLAB 划出如下图形,
编辑窗口
– 用来创建和修改 M-files (MATLAB 脚本 )
Matlab的帮助系统
( 1)帮助命令 help;
( 2)帮助窗口。
MATLAB语言基础一、变量与函数二、数 组三、矩 阵四,MATLAB编程五、实 验 作 业
MATLAB语言基础命令行基础简单的运算
23)]47(212[1求E x a m p l e
步骤如下:
( 1)用键盘在命令窗口 输入 以下 内容,
>> (12+2*(7-4))/(3^2)
( 2)按 Enter键,该指令就被执行。
( 3)命令窗口 显示 所得 结果,
ans =
2
命名规则,
( 1)变量名必须是不含空格的单个词;
( 2)变量名区分大小写;
( 3)变量名最多不超过 19个字符;
( 4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号,
一、变量与函数
MATLAB语言基础
1、变量特殊变量 取 值
a n s 用于结果的缺省变量名
pi 圆周率
e p s
计算机的最小数,当和 1 相加就产生一个比
1 大的数
f l o p s 浮点运算数
in f 无穷大,如 1 / 0
N a N 不定量,如 0 / 0
i,j i= j=
1?
n a r g i n 所用函数的输入变量数目
n a r g o u t 所用函数的输出变量数目
r e a l m i n 最小可用正实数
r e a l m a x 最大可用正实数
2、特殊变量
MATLAB语言基础
3、数学运算符号及标点符号
+ 加法运算,适用于两个数或两个同阶矩阵相加,
— 减法运算
* 乘法运算
.* 点乘运算
/ 除法运算
./ 点除运算
^ 乘幂运算
.^ 点 乘幂运算
\ 反斜杠表示左除,
( 1)每条命令后,若为 逗号 或 无标点 符号,则显示命令的结果;若命令后为 分号,则禁止显示结果,
MATLAB语言基础
( 2),%” 后面文字为注释,( 3),,...”表示续行,
函 数 名 称 函 数 名 称
s i n ( x ) 正弦函数 a s i n ( x ) 反正弦函数
c o s ( x ) 余弦函数 a c o s ( x ) 反余弦函数
t a n ( x ) 正切函数 a t a n ( x ) 反正切函数
a b s ( x ) 绝对值 m a x ( x ) 最大值
m i n ( x ) 最小值 s u m ( x ) 元素的总和
s q r t ( x ) 开平方 e x p ( x ) 以 e 为底的指数
l o g ( x ) 自然对数
)(l og
10
x
以 10 为底的对数
s i g n ( x ) 符号函数 f i x ( x ) 取整
4、数学函数
MATLAB语言基础
函数文件是文件名后缀为 M的文件
5,M文件
M文件建立方法
Matlab的应用程序也以 M文件保存。
MATLAB语言基础第一行必须是一特殊字符 function开始格式,function 因变量名 =函数名(自变量名)
函数值的获得必须通过具体运算实现,并赋给因变量,
在 Matlab中,点,File->New->M-file
在编辑窗口中输入程序内容
点,File->Save,存盘,M文件名必须与函数名一致定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2
function f=fun(x)
f=100*(x(2)-x(1)^2)^2+(1-x(1))^2
1.建立 M文件,fun.m
MATLAB
fun.m
2.可以直接使用函数 fun.m
例如:计算 f(1,2),只需在 Matlab命令窗口键入命令:
x=[1 2]
fun(x)
返回
MATLAB语言基础例如
x=logspace(first,last,n)
创建从 10 first开始,到 10 last结束,有 n个元素的对数分隔行向量,
1、创建简单的数组二、数 组 MATLABshuzu1.m
x=[a b c d e f ]
x=first,last
创建从 first开始,加 1计数,到 last结束的行向量
x=first,increment,last
创建从 first开始,加 increment计数,last结束的行向量
x=linspace(first,last,n)
创建从 first开始,到 last结束,有 n个元素的行向量
MATLAB语言基础创建包含指定元素的行向量
2,数组元素的访问
MATLAB
shuzu2.m
( 3) 直接使用元素编址序号,x([a b c d]) 表示提取数组 x的第 a,b,c,d个元素构成一个新的数组
[x(a) x(b) x(c) x(d)],
( 2) 访问一块元素,x(a,b,c)表示访问数组 x的从第 a个元素开始,以步长为 b到第 c个元素 (但不超过 c).
b可以为负数,b缺省时为 1,
( 1) 访问一个元素,x(i)表示访问数组 x的第 i个元素,
MATLAB语言基础
3、数组的方向产生列向量有两种方法:
直接产生 c=[1; 2; 3; 4]
转置产生 b=[1 2 3 4]; c=b’
MATLAB语言基础说明,以 空格 或 逗号 分隔的元素指定的是不同列的元素以 分号 分隔的元素指定了不同行的元素,
行向量,行方向分布的数列,例:前面例子中的数组列向量,列方向分布的数列,操作和运算与行向量一样,
唯一的区别是结果以列形式显示,
4、数组的运算
( 1)标量 -数组运算设,a=[a1,a2,…,a n],c=标量则,a+c=[a1+c,a2+c,…,a n+c]
a.*c=[a1*c,a2*c,…,a n*c]
a./c= [a1/c,a2/c,…,a n/c](右除)
a.\c= [c/a1,c/a2,…,c/a n] (左除)
a.^c= [a1^c,a2^c,…,a n^c]
c.^a= [c^a1,c^a2,…,c^a n]
MATLAB
shuzu3.m
MATLAB语言基础数组的每个元素对该标量施加相应的加、减、乘、除、
乘方运算,
( 2) 数组 -数组运算设,a=[a1,a2,…,a n],b=[b1,b2,…,b n]
则,a+b= [a1+b1,a2+b2,…,a n+bn]
a.*b= [a1*b1,a2*b2,…,a n*bn]
a./b= [a1/b1,a2/b2,…,a n/bn]
a.\b=[b1/a1,b2/a2,…,b n/an]
a.^b=[a1^b1,a2^b2,…,a n^bn]
MATLAB
shuzu4.m
返回
MATLAB语言基础相同维数的两个数组,按 元素对元素 方式进行加、
减、乘、除、幂运算。
不同大小或维数的数组是不能进行运算的,
三,矩 阵逗号 或 空格 用于分隔某一行的元素,
1、矩阵的建立
MATLAB语言基础分号 用于区分不同的行,按 Enter键也表示开始一新行,
例 m=[1 2 3 4 ; 5 6 7 8; 9 10 11 12]
p=[1 1 1 1
2 2 2 2
3 3 3 3]
输入矩阵时,严格要求所有行有相同的列,
特殊矩阵的建立,
MATLAB
matrix1.m
d=eye(m,n) 产生一个 m行,n列的单位矩阵
c=ones(m,n) 产生一个 m行,n列的全 1矩阵
b=zeros(m,n) 产生一个 m行,n列的零矩阵
a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零,
r=rand(m,n) 产生一个 m行,n列的随机矩阵
MATLAB语言基础
2、矩阵中元素的操作
MATLAB
matrix2.m
( 1)矩阵 A的第 r行,A( r,:)
( 2)矩阵 A的第 r列,A(:,r)
( 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拼接成新矩阵,[A B]; [A; B]
( 3)依次提取矩阵 A的每一列,将 A拉伸为一个列向量,A(:)
MATLAB语言基础
( 2)矩阵 -矩阵运算
3、矩阵的运算
( 1)标量 -矩阵运算,同标量 -数组运算
MATLAB
matrix3.m
矩阵加法,A+B
矩阵乘法,A*B 矩阵除法,A\B,A/B
方阵的行列式,det( A)
方阵的逆,inv( A)
方阵的特征值与特征向量,[V,D]=eig[A] 返回
MATLAB语言基础
[1] 元素对元素,同数组 -数组运算
[2] 矩阵运算:
四、关系与逻辑运算
1、关系操作符关系操作符 说明
< 小于
<= 小于或等于
> 大于
>= 大于或等于
= = 等于
~= 不等于
MATLAB语言基础逻辑操作符 说明


~
与或非
MATLAB语言基础
2、逻辑运算符
3、控制流
MATLAB提供三种决策或控制流结构:
for循环,while循环,if-else-end结构,
例 对 n=1,2,…,10,求 的值
10s i n
nx
n
MATLAB
for1.m
MATLAB语言基础
for x=array
{commands}
end
while expression
{commands}
end
( 2) While循环 MATLAB
while1.m
例 设银行年利率为 11.25%。将 10000元钱存入银行,问多长时间会连本带利翻一番?
( 1) for循环
( 3) If-Else-End结构
MATLAB
fun1.m
)1(),2(,
12
11)( 2?
ff
xx
xxxf 求设例先建立 M文件 fun1.m定义函数 f( x)
MATLAB语言基础
1)有一个选择的一般形式是:
if expression
{commands}
end
然后 在命令窗口输入 fun1(2),fun1(-1)
2) 有三个或更多的选择的一般形式是:
MATLAB语言基础
if ( expression1)
{commands1}
elseif ( expression2)
{commands2}
elseif ( expression3)
{commands3}
elseif ……
…………………………………
else
{commands}
end
)1(),5.0(),2(,
0x
1x02
1x1x
f ( x )
3
2


fff
x
x 求设例先建立 M文件 fun2.m定义函数 f( x)
MATLAB
fun2.m
返回
MATLAB语言基础然后 在命令窗口输入 fun2(2),fun2(0.5),fun2(-1)
对以下问题,编写 M文件,
(1)用起泡法对 10个数由小到大排序,即将相邻两个数比较,将小的调到前头,
(2)有一个 矩阵,编程求其最大值及其所处的位置,
(3)编程求
(4)一球从 100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第 10次落地时,共经过多少米?
第 10次反弹有多高?
(5)有一函数,写一程序,输入自变量的值,输出函数值,
54?
20
1
!
n
n
yxyxyxf 2s i n),( 2
实验作业返回
MATLAB语言基础谢 谢!