1、MATLAB 基础知识一、MATLAB 软件简介1967 年美国 Mathwork 公司推出了、基于矩阵运算的“Matrix Laboratory” (缩写为MATLAB) 的交互式软件包. MATLAB 既是一种直观、高效的计算机语言, 同时又是一个科学计算平台. 它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具. 根据它提供的 500 多个数学和工程函数, 工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算. MATLA-B 一般用于线性代数、概率统计、图像处理、样条分析、信号处理、小波分析、振动理论、神经网络、自动控制、系统识别、算法优化和
2、财政金融等各个方面. 不过, MATLAB 作为一种新的计算机语言, 要想运用自如, 充分发挥它的威力, 也需要系统的学习. 但由于使用 MATLAB 编程运算与人进行科学计算的思路和表达方式完全一致, 所以不像学习其他高级语言如 Basic、Fortan 和 C 语言等那样难于掌握. 下面的内容均是基于 MATLAB7.5 版本. 1、MATLAB 的主要功能(1) 数值计算功能(Numeric)(2) 符号计算功能(Symblic)(3) 图形和可视化功能 (Graphic)(4) MATLAB 的活笔记本功能(Notebook)(5) 可视化建模和仿真功能(Simulink)2、MATL
3、AB 的工作环境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) 语言结构:
4、MATLAB 语言 = 窗口命令 + M 文件(2) 窗口命令: 在 MATLAB 命令窗口中输入的 MATLAB 语句, 并直接执行它们完成相应的运算、绘图等. (3) M 文件 : 在 MATLAB 文本编辑窗口中用 MATLAB 语句编写的磁盘文件 , 扩展名为“.M ”. 二、MATLAB 入门1、数学运算符及特殊字符数组的算术运算符: + - .* ./ . .矩阵的算术运算符: + - * / 关系运算符: = = = =逻辑运算符: | 或; 非三种运算的顺序依次为: 算术运算、关系运算、逻辑运算. pi 数学常数, 即3.1415926535897.eps 系统的浮点 (Flo
5、ating-ponit) 精确度. 在PC机上, 它等于 52Inf 正无穷大, 定义为 10ans 计算结果的默认变量名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(
6、x)最小值fix(x)对称取整 sign(x)符号函数length(x)矩阵行数与列数中的最大值 size(x)矩阵的行数与列数注意: (1) 由于 MATLAB 是基于矩 阵的运算,所以上面的 x 均表示矩阵, 数可看作是11 的矩 阵. (2) 对非向量型矩阵, 如不作特殊说明, 都是列优先.3、命令行的编写随时输入指令并按回车键, 即时给出结果; 在指令最后不用任何符号并按回车键, 将显示最后结果; 在指令最后用“; ”并按回车键 , 将只计算但不显示最后结果. 同时输入几条指令时, 用“, ”或“; ”隔开. 【例 0-1】数学运算符、特殊字符与基本库函数的应用3*(-5), 2/5,
7、 1 2 3.*2 4 5, 1 2 3./2 4 5, 2,4,5.2ans = -15ans = 0.4000ans = 2 8 15ans = 0.5000 0.5000 0.6000ans = 4 16 25 sin(pi/4), log(exp(1)ans = 0.7071ans = 14、变量与表达式在MATLAB中, 把由下标表示次序的标量的集合称为矩阵或数组. MATLAB 是基于矩阵运算的, 因此其基本数据结构只有一个: 矩阵. 一个数也是矩阵, 只不过它是1行1列的矩阵. MATLAB中的变量可用来存放数据 , 也可用来存放向量或矩阵, 并进行各种运算. 变量命名的规则为:
8、 变量名、函数名是要区分大小写字母的; 第一个字符必须是英文字母; 字符间不可留空格; 最多只能有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
9、); plot(x,y) 图 0-3 y=sin(x)的曲线图5、M 文件的建立、编写、保存与调用(1) 进入文本编辑窗口的方式: 在菜单栏“File”下直接点击 “新建”进入文本编辑窗口. (2) M 文件的分类与格式: 命令文件: 由一系列 MATLAB 语句组成, 运行时将自动执行一系列命令直至给出最后结果, 而不交互地等待键盘输入. 命令文件定义的变量为全局变量, 存放于内存. 函数文件: 第一行必须包含 “function”, 主要功能是建立一个函数 . 函数文件定义的变量为局部变量. function 因变量名= 函数名( 自变量名)注意: 函数文件要求函数名和文件名相同, 且函数
10、名、文件名与变量名的命名规则一样.(3) 退出文本编辑窗口: 录入完毕, 存盘退出文本编辑窗口则可. 【例 0-3】已知 , 而 , 试求 的值. 123,1xx212123,yzzx12,y在文本编辑窗口中编写命令文件f0_3.m: x1=-2;x2=3;x3=1;z1=3*x12;z2=x2+x3;y1=z1+z2y2=z1-z2在命令窗口中运行命令文件f0_3.m: f0_3y1 = 16y2 = 8【例 0-4】求 分别在 处的函数值. 22()lg(5)(10)fxx0,51x在文本编辑窗口中编写函数文件f0_4.m: function y=f0_4(x) y=log10(sqrt(
11、x-5).2+(x-100).2); 在命令窗口中调用函数文件f0_4.m: x=0,5,10; y=f0_4(x);y = 2.0005 1.9777 1.95496、MATLAB 的在线帮助(1) 从菜单栏上的“help”进入(2) 其它命令窗口帮助clc 清除显示屏上的内容clear 清除内存变量和函数what 列出当前目录下的M 、MAT、MEX文件who 列出当前工作空间 (Workspace) 的变量名7、路径的设置在保存 M 文件时, MATLAB 的默认位置是 C:MATLAB6p5work. 如果用户将编写的M 文件保存在 E:experiment 目录下, 则从 MATLA
12、B 窗口的“ 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的频率(
13、密度)直方图, 其中Fn与x0是由ecdf 函数得到的样本x的经验分布函数值Fn与分段点x0, m 为条形的个数 , m的默认值为10cdfplot(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.0000x0 = 3 3 4 5 6 7 8 cdfplot(x)图 1-1 经验分布函数图【例1】在齿轮加工中, 齿轮的径向综合误差 是个随机变量, 今对200件同样的齿轮进iF行测量, 测得 的数值 (mm) 如下, 求作 的频率密度直方图
14、, 并作出 的经iFi iF验分布函数图形. 16 25 19 20 25 33 24 23 20 24 25 17 15 21 22 26 15 23 22 2420 14 16 11 14 28 18 13 27 31 25 24 16 19 23 26 17 14 30 2118 16 18 19 20 22 19 22 18 26 26 13 21 13 11 19 23 18 24 2813 11 25 15 17 18 22 16 13 12 13 11 09 15 18 21 15 12 17 1314 12 16 10 08 23 18 11 16 28 13 21 22 12
15、 08 15 21 18 16 1619 28 19 12 14 19 28 28 28 13 21 28 19 11 15 18 24 18 16 2819 15 13 22 14 16 24 20 28 18 18 28 14 13 28 29 24 28 14 1818 18 08 21 16 24 32 16 28 19 15 18 18 10 12 16 26 18 19 3308 11 18 27 23 11 22 22 13 28 14 22 18 26 18 16 32 27 25 2417 17 28 33 16 20 28 32 19 23 18 28 15 24 28 2
16、9 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 1
17、6 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 1
18、9 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_65 10 1
19、5 20 25 30 3501020304050 函函函函函函函函函函函函函函(mm)5 10 15 20 25 30 3500.010.020.030.040.050.060.070.08 函函(函函)函函函函函函函函函函函函(mm) 5 10 15 20 25 30 3500.20.40.60.81函函函函函函函函函(mm)F(x)函函函函函函函图1-2二、常见的概率分布表 1-1 常用概率分布及代码连续型分布 离散型分布分布名称 代码 分布名称 代码 分布名称 代码连续均匀分布 unif 分布2chi2 二项分布 bino指数分布 exp 非中心 分布 ncx2 离散均匀分布 unid正
20、态分布 norm 分布Ff 几何分布 geo多维正态分布 mvn 非中心 分布 ncf 超几何分布 hyge对数正态分布 logn 分布tt 负二项分布 nbin分布beta 非中心 分布 nct 泊松分布 poiss(Gamma)分布gam 多维 t 分布 mvtRayleigh 分布 rayl I 型极值分布 evWeibull 分布 wbl 广义极值分布 gev三、MATLAB 为常见分布提供的五类函数1) 概率密度函数(分布名+pdf)2) (累积)分布函数(分布名+cdf)3) 逆(累积)分布函数(分布名+inv)4) 随机数发生器(分布名+rnd)5) 均值和方差(分布名+stat
21、)1、概率密度函数表 1-2 概率密度函数(pdf)函数名称 函数说明 调用格式normpdf 正态分布 Y=normpdf (X, mu, sigma)chi2pdf 分布2Y=chi2pdf (X, N)tpdf 分布t Y=tpdf (X, N)fpdf 分布FY=fpdf (X, N1, N2)注意: Y=normpdf (X, mu, sigma)的 sigma 是指标准差 , 而非 . 2【例 2】 绘制标准正态分布 的概率密度图. (0,1)Nx=-4:0.1:4;y=normpdf(x,0,1);plot(x,y)title(N(0,1)的概率密度曲线图)-4 -2 0 2 4
22、00.050.10.150.20.250.30.350.4 N(0,1)函函函函函函函函图 1-3 标准正态分布的概率密度图2、累积分布函数表 1-3 累积分布函数(cdf)函数名称 函数说明 调用格式normcdf 正态分布 P=normcdf (X, mu, sigma)chi2cdf 分布2P=chi2cdf (X, N)tcdf 分布t P=tcdf (X, N)fcdf 分布FP=fcdf (X, N1, N2)【例 3】求服从标准正态分布的随机变量落在区间-2, 2 上的概率. P=normcdf (2,0,1)-normcdf(-2,0,1)ans = 0.95453、逆累积分布
23、函数 (用于求分位点 )表 1-4 逆累积分布函数(inv)函数名称 函数说明 调用格式norminv 正态分布 X=norminv (P, mu, sigma)chi2inv 分布2 X=chi2inv (P, N)tinv 分布t X=tinv (P, N)finv 分布FX=finv (P, N1, N2)【例4】 求下列分位数: (i) ; (ii) ; (iii) ; (iv) . 0.9u0.25(4)t0.1(4,)20.5() 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.35744、随机数发生函数表 1-5 随机数发生函数(rnd)函数名称 函数说明 调用格式normrnd 正态分布 R=normrnd(mu, sigma, m, n)chi2rnd 分布2R=chi2rnd(N, m, n)trnd 分布t R=trnd(N, m, n)