资源描述
MATLAB基础知识
一、MATLAB软件简介
1967年美国Mathwork公司推出了、基于矩阵运算的“Matrix Laboratory” (缩写为MATLAB) 的交互式软件包. MATLAB既是一种直观、高效的计算机语言, 同时又是一个科学计算平台. 它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具. 根据它提供的500多个数学和工程函数, 工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算. MATLA-B一般用于线性代数、概率统计、图像处理、样条分析、信号处理、小波分析、振动理论、神经网络、自动控制、系统识别、算法优化和财政金融等各个方面.
不过, MATLAB作为一种新的计算机语言, 要想运用自如, 充分发挥它的威力, 也需要系统的学习. 但由于使用MATLAB编程运算与人进行科学计算的思路和表达方式完全一致, 所以不像学习其他高级语言如Basic、Fortan和C语言等那样难于掌握. 下面的内容均是基于MATLAB7.5版本.
1、MATLAB的主要功能
(1) 数值计算功能(Numeric)
(2) 符号计算功能(Symblic)
(3) 图形和可视化功能 (Graphic)
(4) MATLAB的活笔记本功能(Notebook)
(5) 可视化建模和仿真功能(Simulink)
2、MATLAB的工作环境
MATLAB的工作环境主要包括:
·【Command Window】命令窗口;
·【File Editor】文本编辑窗口;
·【Figure Window】图形窗口.
图0-1 MATLAB 6.x的命令窗、文本编辑窗、图形窗、菜单栏和工具栏
MATLAB 7.5还包含几个辅助视窗, 组成其“桌面系统”. 它们分别为:
·【Workspace】工作台窗口;
·【Command History】指令历史纪录窗口;
·【Current Directory】当前目录选择窗口.
图0-2 MATLAB 7.5的桌面系统和命令窗口
3、MATLAB的工作原理
(1) 语言结构:
MATLAB语言 = 窗口命令 + M文件
(2) 窗口命令:
在MATLAB命令窗口中输入的MATLAB语句, 并直接执行它们完成相应的运算、绘图等.
(3) M文件:
在MATLAB文本编辑窗口中用MATLAB语句编写的磁盘文件, 扩展名为“.M”.
二、MATLAB入门
1、数学运算符及特殊字符
数组的算术运算符: + - .* ./ .\ .^
矩阵的算术运算符: + - * / \ ^
关系运算符: < <= > >= = = ∽=
逻辑运算符: & 与; | 或; ~ 非
三种运算的顺序依次为: 算术运算、关系运算、逻辑运算.
pi 数学常数, 即3.1415926535897....
eps 系统的浮点 (Floating-ponit) 精确度. 在PC机上, 它等于
Inf 正无穷大, 定义为
ans 计算结果的默认变量名
NaN 不定值, 由 Inf/Inf或0/0等运算产生
2、基本库函数
(1) 常用三角函数:
sin, cos, tan, cot, sec, csc, asin, acos, atan, acot, asec, acsc等
(2) 常用基本函数:
sqrt(x)—开平方 abs(x)—取绝对值
exp(x)—以e为底的指数 log(x)—自然对数
log10(x)—以10为底的对数 log2(x)—以2为底的对数
sum(x)—求和 prod(x)-求积
max(x)—最大值 min(x)—最小值
fix(x)—对称取整 sign(x)—符号函数
length(x)—矩阵行数与列数中的最大值 size(x)—矩阵的行数与列数
注意: (1) 由于MATLAB是基于矩阵的运算,所以上面的x均表示矩阵, 数可看作是1×1的矩阵.
(2) 对非向量型矩阵, 如不作特殊说明, 都是列优先.
3、命令行的编写
随时输入指令并按回车键, 即时给出结果;
在指令最后不用任何符号并按回车键, 将显示最后结果;
在指令最后用“; ”并按回车键, 将只计算但不显示最后结果.
同时输入几条指令时, 用“, ”或“; ”隔开.
【例0-1】数学运算符、特殊字符与基本库函数的应用
>>3*(-5), 2/5, [1 2 3].*[2 4 5], [1 2 3]./[2 4 5], [2,4,5].^2
ans = -15
ans = 0.4000
ans = 2 8 15
ans = 0.5000 0.5000 0.6000
ans = 4 16 25
>> sin(pi/4), log(exp(1))
ans = 0.7071
ans = 1
4、变量与表达式
在MATLAB中, 把由下标表示次序的标量的集合称为矩阵或数组. MATLAB是基于矩阵运算的, 因此其基本数据结构只有一个: 矩阵. 一个数也是矩阵, 只不过它是1行×1列的矩阵. MATLAB中的变量可用来存放数据, 也可用来存放向量或矩阵, 并进行各种运算.
变量命名的规则为:
·变量名、函数名是要区分大小写字母的;
·第一个字符必须是英文字母;
·字符间不可留空格;
·最多只能有31个字符 (只能有英文字母、数字和下连字符) .
表达式由变量名、运算符和函数名等组成. 如x/sin(x), 其中x为变量名, /为运算符, sin为函数名.
MATLAB语句有两种最常见形式: 1) 表达式; 2) 赋值语句: 变量 = 表达式.
【例0-2】赋值语句的使用
>> x=1; y=x/sin(x)
y = 1.1884
>> x=[pi/6,pi/4,pi/3,pi/2]; sin(x)
ans =0.5000 0.7071 0.8660 1.0000
>> x=0:0.1:2*pi; y=sin(x); plot(x,y)
图0-3 y=sin(x)的曲线图
5、M文件的建立、编写、保存与调用
(1) 进入文本编辑窗口的方式: 在菜单栏“File”下直接点击“新建…”进入文本编辑窗口.
(2) M文件的分类与格式:
① 命令文件: 由一系列MATLAB语句组成, 运行时将自动执行一系列命令直至给出最后结果, 而不交互地等待键盘输入. 命令文件定义的变量为全局变量, 存放于内存.
② 函数文件: 第一行必须包含“function”, 主要功能是建立一个函数. 函数文件定义的变量为局部变量.
function 因变量名= 函数名(自变量名)
注意: 函数文件要求函数名和文件名相同, 且函数名、文件名与变量名的命名规则一样.
(3) 退出文本编辑窗口: 录入完毕, 存盘退出文本编辑窗口则可.
【例0-3】已知, 而, 试求的值.
·在文本编辑窗口中编写命令文件f0_3.m:
x1=-2;x2=3;x3=1;
z1=3*x1^2;
z2=x2+x3;
y1=z1+z2
y2=z1-z2
·在命令窗口中运行命令文件f0_3.m:
>> f0_3
y1 = 16
y2 = 8
【例0-4】求分别在处的函数值.
·在文本编辑窗口中编写函数文件f0_4.m:
function y=f0_4(x)
y=log10(sqrt((x-5).^2+(x-100).^2));
·在命令窗口中调用函数文件f0_4.m:
>>x=[0,5,10]; y=f0_4(x);
y = 2.0005 1.9777 1.9549
6、MATLAB的在线帮助
(1) 从菜单栏上的“help”进入
(2) 其它命令窗口帮助
clc —— 清除显示屏上的内容
clear —— 清除内存变量和函数
what —— 列出当前目录下的M、MAT、MEX文件
who —— 列出当前工作空间 (Workspace) 的变量名
7、路径的设置
在保存M文件时, MATLAB的默认位置是C:\MATLAB6p5\work. 如果用户将编写的M文件保存在E:\experiment目录下, 则从MATLAB窗口的“File”菜单中单击子菜单“Save As…”, 选择E:\experiment, 再输入本M文件的文件名, 按“保存”键返回则可.
第一章 数理统计的基本概念
一、直方图与经验分布函数图的绘制
hist(A,n) —— 对矩阵A按列作统计频数直方图, n为条形图的条数
ni=hist(A,n)—— 对矩阵A按列得各划分区间内的统计频数
注意: 当A为向量时, 上述所有命令直接作用在向量上, 而不是列优先.
[Fn,x0]=ecdf(x) —— 得到样本x的经验分布函数值Fn, 当x中有m个不同的数 (记为向量x0) 时, 则Fn的个数为m+1个
ecdfhist(Fn,x0, m) —— 绘制数据x的频率(密度)直方图, 其中Fn与x0是由ecdf函数得到的样本x的经验分布函数值Fn与分段点x0, m为条形的个数, m的默认值为10
cdfplot(x) —— 绘制样本x的经验分布函数图
例如:
>> x = [6 4 5 3 6 8 6 7 3 4];
>> [Fn,x0]=ecdf(x)
Fn = 0 0.2000 0.4000 0.5000 0.8000 0.9000 1.0000
x0 = 3 3 4 5 6 7 8
>> cdfplot(x)
图1-1 经验分布函数图
【例1】在齿轮加工中, 齿轮的径向综合误差是个随机变量, 今对200件同样的齿轮进行测量, 测得的数值 (mm) 如下, 求作的频率密度直方图, 并作出的经验分布函数图形.
16 25 19 20 25 33 24 23 20 24 25 17 15 21 22 26 15 23 22 24
20 14 16 11 14 28 18 13 27 31 25 24 16 19 23 26 17 14 30 21
18 16 18 19 20 22 19 22 18 26 26 13 21 13 11 19 23 18 24 28
13 11 25 15 17 18 22 16 13 12 13 11 09 15 18 21 15 12 17 13
14 12 16 10 08 23 18 11 16 28 13 21 22 12 08 15 21 18 16 16
19 28 19 12 14 19 28 28 28 13 21 28 19 11 15 18 24 18 16 28
19 15 13 22 14 16 24 20 28 18 18 28 14 13 28 29 24 28 14 18
18 18 08 21 16 24 32 16 28 19 15 18 18 10 12 16 26 18 19 33
08 11 18 27 23 11 22 22 13 28 14 22 18 26 18 16 32 27 25 24
17 17 28 33 16 20 28 32 19 23 18 28 15 24 28 29 16 17 19 18
·编写命令文件example1_6.m:
F=[16 25 19 20 25 33 24 23 20 24 25 17 15 21 22 26 15 23 22 24....
20 14 16 11 14 28 18 13 27 31 25 24 16 19 23 26 17 14 30 21....
18 16 18 19 20 22 19 22 18 26 26 13 21 13 11 19 23 18 24 28....
13 11 25 15 17 18 22 16 13 12 13 11 09 15 18 21 15 12 17 13....
14 12 16 10 08 23 18 11 16 28 13 21 22 12 08 15 21 18 16 16....
19 28 19 12 14 19 28 28 28 13 21 28 19 11 15 18 24 18 16 28....
19 15 13 22 14 16 24 20 28 18 18 28 14 13 28 29 24 28 14 18....
18 18 08 21 16 24 32 16 28 19 15 18 18 10 12 16 26 18 19 33....
08 11 18 27 23 11 22 22 13 28 14 22 18 26 18 16 32 27 25 24....
17 17 28 33 16 20 28 32 19 23 18 28 15 24 28 29 16 17 19 18];
%(1)下面作频数直方图
figure(1)
hist(F,8)
title('频数直方图');
xlabel('齿轮的径向综合误差(mm)');
%(2)下面作频率(密度)直方图
[Fn,x0]=ecdf(F);
figure(2)
ecdfhist(Fn,x0,8);
title('频率(密度)直方图');
xlabel('齿轮的径向综合误差(mm)');
%(3)下面作经验分布函数图
figure(3)
cdfplot(F)
title('经验分布函数图');
xlabel('齿轮的径向综合误差(mm)');
·运行命令文件example1_6.m:
>> example1_6
图1-2
二、常见的概率分布
表1-1 常用概率分布及代码
连续型分布
离散型分布
分布名称
代码
分布名称
代码
分布名称
代码
连续均匀分布
unif
分布
chi2
二项分布
bino
指数分布
exp
非中心分布
ncx2
离散均匀分布
unid
正态分布
norm
分布
f
几何分布
geo
多维正态分布
mvn
非中心分布
ncf
超几何分布
hyge
对数正态分布
logn
分布
t
负二项分布
nbin
分布
beta
非中心分布
nct
泊松分布
poiss
(Gamma)分布
gam
多维t分布
mvt
Rayleigh分布
rayl
I型极值分布
ev
Weibull分布
wbl
广义极值分布
gev
三、MATLAB为常见分布提供的五类函数
1) 概率密度函数(分布名+pdf)
2) (累积)分布函数(分布名+cdf)
3) 逆(累积)分布函数(分布名+inv)
4) 随机数发生器(分布名+rnd)
5) 均值和方差(分布名+stat)
1、概率密度函数
表1-2 概率密度函数(pdf)
函数名称
函数说明
调用格式
normpdf
正态分布
Y=normpdf (X, mu, sigma)
chi2pdf
分布
Y=chi2pdf (X, N)
tpdf
分布
Y=tpdf (X, N)
fpdf
分布
Y=fpdf (X, N1, N2)
注意: Y=normpdf (X, mu, sigma)的sigma是指标准差, 而非.
【例2】 绘制标准正态分布的概率密度图.
x=-4:0.1:4;
y=normpdf(x,0,1);
plot(x,y)
title('N(0,1)的概率密度曲线图')
图1-3 标准正态分布的概率密度图
2、累积分布函数
表1-3 累积分布函数(cdf)
函数名称
函数说明
调用格式
normcdf
正态分布
P=normcdf (X, mu, sigma)
chi2cdf
分布
P=chi2cdf (X, N)
tcdf
分布
P=tcdf (X, N)
fcdf
分布
P=fcdf (X, N1, N2)
【例3】求服从标准正态分布的随机变量落在区间[-2, 2]上的概率.
>> P=normcdf (2,0,1)-normcdf(-2,0,1)
ans = 0.9545
3、逆累积分布函数 (用于求分位点)
表1-4 逆累积分布函数(inv)
函数名称
函数说明
调用格式
norminv
正态分布
X=norminv (P, mu, sigma)
chi2inv
分布
X=chi2inv (P, N)
tinv
分布
X=tinv (P, N)
finv
分布
X=finv (P, N1, N2)
【例4】 求下列分位数:
(i) ; (ii) ; (iii) ; (iv) .
>> u_alpha=norminv(0.9,0,1)
u_alpha = 1.2816
>> t_alpha=tinv(0.25,4)
t_alpha = -0.7407
>> F_alpha=finv(0.1,14,10)
F_alpha = 0.4772
>> X2_alpha=chi2inv(0.025,50)
X2_alpha = 32.3574
4、随机数发生函数
表1-5 随机数发生函数(rnd)
函数名称
函数说明
调用格式
normrnd
正态分布
R=normrnd(mu, sigma, m, n)
chi2rnd
分布
R=chi2rnd(N, m, n)
trnd
分布
R=trnd(N, m, n)
frnd
分布
R=frnd(N1, N2, m, n)
5、均值和方差
表1-6 常见分布的均值和方差函数(stat)
函数名称
函数说明
调用格式
unifstat
连续均匀分布: ,
[M,V]=unifstat (A, B)
expstat
指数分布: ,
[M,V]=expstat (MU)
normstat
正态分布: ,
[M,V]=normstat (mu, sigma)
chi2stat
分布: ,
[M,V]=chi2stat (N)
tstat
分布: ,
[M,V]=tstat (N)
fstat
分布:
[M,V]=fstat (N1, N2)
binostat
二项分布: ,
[M,V]=binostat (N, p)
poisstat
泊松分布: ,
[M,V]=poisstat (LAMBDA)
注意: (1) MATLAB中的指数分布的概率密度函数是.
(2) 如果省略调用格式左边的[M, V], 则只计算出均值.
四、常用的统计量
表1-7 常用统计量
函数名称
函数说明
调用格式
mean
样本均值
m=mean(X)
range
样本极差
y=range(X)
std
样本标准差
y=std(X)
var
样本方差
y=var(X), y=var(X, 1)
corrcoef
相关系数
R=corrcoef (X)
cov
协方差矩阵
C=cov(X), C=cov(X, Y)
moment
任意阶中心矩
m=moment(X, order)
说明:
(1) y=var(X) ——计算X中数据的方差, 其中.
y=var(X, 1) ——, 得到样本的二阶中心矩 (转动惯量).
(2) C=cov(X) ——返回一个协方差矩阵, 其中输入矩阵X的每列元素代表着一个随机变量的观测值. 如果X为n×m的矩阵, 则C为m×m的矩阵.
(3) var(X)=diag(cov(X)), std(X)=sqrt(diag(cov(X))).
展开阅读全文