《自控实验-matlab》由会员分享,可在线阅读,更多相关《自控实验-matlab(68页珍藏版)》请在金锄头文库上搜索。
1、Matlab 简介,在欧美各高等院校,Matlab 已经成为线性代数、数值分析、数理统计、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。Matlab 功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。,Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自 1984 年推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。,Matlab 简介,Matlab: Matrix Laboratry 矩阵实验室,Matlab 的发展,1980年,Moler 教授用 Fortr
2、an 语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。,1984年,Moler 等成立了 The MathWorks 的公司,用 C 语言完全改写 Matlab,并推出第一个商业版。,增添图形图像处理、符号运算、以及与其他流行软件 的接口功能,使得 Matlab 的功能越来越强大。,到九十年代,在国际上 30 几个数学类科技应用软件中, Matlab 在数值计算方面独占鳌头。,目前,Matlab 已经成为国际上最流行的科学与工程计算的软件工具,是一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言。 就影响而言,至今仍然没有一个别的计算软件可与 Matla
3、b 匹敌。,Matlab 简介,购买(下载)Matlab 软件,Matlab 的安装,插入光盘,自动运行; 或点击安装程序 setup.exe,Matlab 的特点与功能,Matlab 具有很强的数值计算功能,Matlab 以矩阵作为数据操作的基本单位,但无需预先指定 矩阵维数(动态定维),按照 IEEE 的数值计算标准进行计算,提供十分丰富的数值计算函数,方便计算,提高效率,Matlab 命令与数学中的符号、公式非常接近,可读性强, 容易掌握,Matlab 的特点与功能,Matlab 丰富的工具箱(toolbox),Matlab 的特点与功能,根据专门领域中的特殊需要而设计的各种可选工具箱,
4、Matlab 的基本用法,Matlab 的工作界面,命令窗口,当前工作目录,当前工作空间,输入命令的历史记录,命令提示符,矩阵的直接排列输入,矩阵用方括号“ ”括起,例: A = 1 2 3; 4 5 6; 7 8 9,矩阵同一行中的元素之间用 空格 或 逗号 分隔,矩阵行与行之间用 分号 分开,直接输入法中,分号可以用 回车 代替,例:,矩阵操作,Matlab 的操作对象是 矩阵,大矩阵可以把小矩阵作为其元素,矩阵元素赋值,如何在原矩阵的右边添加一列?,单个元素的引用,例: A(2,3),矩阵元素的引用,多个元素的引用:冒号的特殊用法,例: x=3:2:1,多个元素的引用(续),例: x(1
5、:3),矩阵元素的引用, A(3,1:3),A(i:j, m:n) 表示由矩阵 A 的第 i 到第 j 行和第 m 到第 n列交叉线上的元素组成的子矩阵。,可利用冒号提取矩阵 的整行或整列。,例: A(1, :), A(:, 1:2), A(:, :),Matlab帮助系统,例: help eig, help help,例: doc eig,Matlab 查找命令,变量命名原则,Matlab 变量,分号和续行符的作用,Matlab 变量,若不想在屏幕上输出结果,可以在语句最后加分号,如果语句很长,可用续行符 “”(三个点)续行 续行符的前面最好留一个空格,例:,变量的查询,Matlab 变量,
6、who 显示工作空间中的所有变量,whos 查看工作空间中变量的详细属性,系统预定义变量,Matlab 变量,pi 圆周率 ,其值为 imag(log(-1),inf/Inf 无穷大,nan/NaN Not-a-Number,一个不定值,如 0/0,eps 浮点运算相对精度,特殊变量 ans,i/j 虚部单位,即,应尽量避免给系统预定义变量重新赋值!,数学运算符,+ 加法,Matlab 数值运算,- 减法,* 乘法,/ 和 除法(右除和左除), 幂运算,变量的存储,存储当前工作空间中的变量,save 将所有变量存入文件 matlab.mat,save mydata 将所有变量存入指定文件 my
7、data.mat,存储指定的变量,save mydata.mat 将所有变量存入文件 mydata.mat,save 文件名 变量名列表,例: save mydata A x z,变量名列表中各变量之间用空格分隔。,变量的读取,清除当前工作空间中的变量,clear 清除当前工作空间中的所有变量,clear A x 清除指定的变量,几个小技巧,Matlab 的命令记忆功能:上下箭头键,命令补全功能: Tab 键,可以先输入命令的前几个字符,再按上下键缩小搜索范围,用 Esc 键 删除命令行,向量与矩阵运算,向量与矩阵的生成,向量与矩阵运算,从矩阵中抽取行或列,向量与矩阵的生成(续),向量与矩阵运
8、算,矩阵的生成,直接输入: A=1, 2, 3; 4, 5, 6; 7, 8, 9,由向量生成,由函数生成,通过编写m文件生成,例: C=magic(3),常见矩阵生成函数,矩阵操作,A(:) 与 A(:,:) 的区别 ?,如何获得由 A 的第一、三行和第一、二列组成的子矩阵?,矩阵操作,矩阵的旋转,fliplr(A) 左右旋转,flipud(A) 上下旋转,rot90(A) 逆时针旋转 90 度; rot90(A,k) 逆时针旋转 k90 度,矩阵操作,矩阵的转置与共轭转置,点与单引号之间不能有空格!,矩阵操作,改变矩阵的形状:reshape,reshape(A,m,n): 将矩阵元素按 列
9、方向 进行重组,重组后得到的新矩阵的元素个数必须与原矩阵元素个数相等!,矩阵操作,查看矩阵的大小:size,size(A) 列出矩阵 A 的行数和列数,size(A,1) 返回矩阵 A 的行数,size(A,2) 返回矩阵 A 的列数,length(x) 返回向量 X 的长度,length(A) 等价于 max(size(A),矩阵基本运算,矩阵的加减:对应分量进行运算,要求参与加减运算的矩阵具有 相同的维数,矩阵的普通乘法,要求参与运算的矩阵满足线性代数中矩阵相乘的原则,矩阵基本运算,矩阵的除法:/、 右除和左除,若 A 可逆方阵,则,AB A 的逆左乘 B inv(A)*B,B/A A 的
10、逆右乘 B B*inv(A),X=AB A*X=BX=B/A X*A=B,通常,矩阵除法可以理解为,当 A 和 B 行数相等时即可进行左除 当 A 和 B 列数相等时即可进行右除,矩阵的乘方,矩阵的数组运算,数组运算:对应元素进行运算,点与算术运算符之间不能有空格!,数组运算包括:点乘、点除、点幂,相应的数组运算符为: “.* ” , “./ ” , “. ” 和“ . ”,参与运算的对象必须具有相同的形状!,数与数组的点幂,x.y =14,25,36=1,32,729,x.2 =12,22,32=1,4,9,2 .x = ?,. 前面留个空格,例:x=1 2 3; y=4 5 6;,2 .x
11、;y= ?,Matlab中的所有标点符号必须在英文状态下输入,Matlab中常见数学函数,log 是自然对数,即以 e 为底数mod(x,y) 结果与 y 同号,rem(x,y) 则与 x 同号max 等函数的参数是矩阵时,是作用在矩阵各列上,上机作业,试分别生成 5 阶的单位阵、8 阶均匀分布的随机矩阵及其下三角矩阵生成列向量 x=1, 3, 5, 7, 9, , 29生成以 x 的前 5 个元素为对角线的矩阵 A生成一个与 A 同阶的正态分布的随机矩阵 B生成由 B 与其同阶魔方矩阵点乘得到的矩阵 D生成由 D 的第 2、4、5 行和第4、1 列组成的子矩阵 E求出矩阵 E 的最大元素,M
12、atlab 绘图,如何画出 ysin(x) 在 0, 2*pi 上的图像?,手工作图,Matlab 绘图,找点: x=0, pi/3, pi/2, 2*pi/3, pi, ,计算函数值: y=sin(0), sin(pi/3), sin(pi/2), ,描点:在坐标系中画出这些离散点,用直线或曲线连接这些点,得到函数的大致图形,Matlab 作图,Matlab 绘图,给出离散点列: x=0:pi/10:2*pi,计算函数值: y=sin(x),画图:用 matlab 二维绘图命令 plot 作出函数图形 plot(x,y),Matlab 二维作图,plot(x,y),基本形式,x, y 都是向
13、量,则以 x 中元素为横坐标, y 中元素为纵坐标作平面曲线。此时 x, y 必须具有相同长度。,x, y 都是矩阵,则将 x 的列和 y 中相应的列相组合,绘制多条平面曲线。此时 x, y 必须具有相同的大小。,x 是向量, y 是矩阵,若 x 的长度与 y 的行数相等,则将 x 与 y 中的各列相对应,绘制多条平面曲线;否则,若 x 的长度与 y 的列数相等,则将 x 与 y 中的各行相对应,绘制多条平面曲线。此时 x 的长度必须等于 y 的行数或列数。,plot 举例, x=0:0.1:4*pi; y=cos(x); plot(x,y);,例:y=cos(x) 在 0, 4*pi 上的图
14、像,Matlab 二维作图,plot(y): 绘制向量 y 中元素的线性图,基本形式(续),点和线的基本属性,图形的属性,属性可以全部指定,也可以只指定其中某几个排列顺序任意,图形的基本属性,help plot 查看,图形的其他属性,标题,title(text),例:,title(text, Property1, value1, Property2, value2, .),可以指定文本的属性,图形的其他属性,坐标轴标注,xlabel(text) 或 ylabel(text),例:,图形的其他属性,添加图例,legend(string1,string2, .),在指定地方添加文本,text(x,
15、y,string1,string2, .), legend(cos(x);, text(pi/2,cos(pi/2),leftarrowy=cos(x);,xlable, ylabel, text 命令也可以指定文本的属性,其他相关命令,其他相关命令,怎样在一个绘图区域内绘制多个函数的图像 ?,将一个绘图窗口分割成 m*n 个子区域,并 按行 从左至右 依次编号 。p 表示第 p 个绘图子区域。,同时绘制多个函数图像,plot(x1,y1,s1,x2,y2,s2, . ,xn,yn,sn),属性选项可以省略,等价于:,hold onplot(x1,y1,s1)plot(x2,y2,s2).plot(xn,yn,sn),图形的其他属性,线条的粗细,字体大小,坐标轴属性等。,linewidth: 指定线条的粗细markeredgecolor: 指定标记的边缘色markerfacecolor: 指定标记表面的颜色,注:1) 属性与属性的值是成对出现的 2) 更多属性参见 plot 的联机帮助,空间三维作图,三维曲线 : plot3,设三维曲线的参数方程为:x=x(t),y=y(t),z=z(t),则其图形可由下面的命令绘出:,