1 / 43

MATLAB 软件简介

MATLAB 软件简介. 九江职业技术学院基础课部 2004.3. 学习 MATLAB. 什么是 MATLAB? MATLAB 能干什么 ? 掌握 MATLAB …… 应用实例. 什么是 MATLAB?. 1 .MATLAB 代表 MAT rix LAB oratory 它的首创者是美国新墨西哥大学计算机系的系主任 Cleve Moler 博士,他在教授线性代数课程发现其他语言很不方便,篇构思开发了 MATLAB 。最初采用 FORTRAN 语言编写, 20 世纪 80 年代后出现了 MATLAB 的第二版,全部采用 C 语言编写 .

giona
Télécharger la présentation

MATLAB 软件简介

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MATLAB软件简介 九江职业技术学院基础课部 2004.3

  2. 学习 MATLAB • 什么是 MATLAB? • MATLAB 能干什么? • 掌握MATLAB …… • 应用实例

  3. 什么是 MATLAB? 1 .MATLAB 代表MATrix LABoratory • 它的首创者是美国新墨西哥大学计算机系的系主任Cleve Moler博士,他在教授线性代数课程发现其他语言很不方便,篇构思开发了MATLAB。最初采用FORTRAN语言编写,20世纪80年代后出现了MATLAB的第二版,全部采用C语言编写. • 1984年Moler博士和一批数学家及软件专家创建了MathWorks公司,专门开发MATLAB。 • 1993年出现了微机版,到2003年是6.5版

  4. 2 .一种演草纸式的科学计算语言 3 .MATLAB 是一高性能的技术计算语言. • 强大的数值计算和工程运算功能 • 符号计算功能 • 强大的科学数据可视化能力 • 多种工具箱

  5. MATLAB 能干什么? MATLAB可以进行: • 数学计算、算法开发、数据采集 • 建模、仿真、原型 • 数据分析、开发和可视化 • 科学和工程图形应用程序的开发,包括图形用户界面的创建。 MATLAB广泛应用于: • 数值计算、图形处理、符号运算、数学建模、系统辨识、小波分析、实时控制、动态仿真等领域。

  6. 掌握 MATLAB …… MATLAB的构成: • MATLAB开发环境:进行应用研究开发的交互式平台 • MATLAB 数学与运算函数库:用于科学计算的函数 • MATLAB 语言:进行应用开发的编程工具 • 图形化开发:二维、三维图形开发的工具 • 应用程序接口 (API):用于与其他预言混编 • 面向专门领域的工具箱:小波工具箱、神经网络工具箱、信号处理工具箱、图像处理工具箱、模糊逻辑工具箱、优化工具箱、鲁棒控制工具箱等几十个不同应用的工具箱。

  7. 开发环境 包括:命令窗口、图形窗口、编辑窗口、帮助窗口。

  8. command (typed at prompt) MATLAB output MATLAB prompt (>>)and cursor (|) 命令窗口 • 可在提示符后输入交互式命令 • 结果会自动的产生 • 例如:

  9. 图形窗口 在窗口中输入: • Plot([1,2,4,9,16],[1,2,3,4,5]) • MATLAB 划出如下图形:

  10. 编辑窗口 • 用来创建和修改M-files (MATLAB 脚本)

  11. 帮助窗口

  12. The MATLAB Language MATLAB 语言的特点 • Matlab的基本数据单元是不需指定维数的矩阵。 • Matlab的所有计算都是通过双精度进行的,在内存中的数都是双精度的。 • double 是一个双精度浮点数,每个存储的双精度数用64位。 • char用于存储字符,每个存储的字符用16位。

  13. MATLAB的程序构成:

  14. 常变量及其命名规则 • 变量名可以有数字、字母、下划线构成; • 变量的首字符必须是字母; • 区分变量名的大小写 • 每个变量名最长只能包含19个字符。

  15. Matlab中预定义变量 Ans 分配最新计算表达式的值,这个表达式并没有给定一个名字 • Eps 返回机器精度 • Realmax 返回计算机能处理的最大浮点数 • Realmin 返回计算机能处理的最小的非零浮点数 • Pi ,3.14159265 • Inf 定义为1/0 。当出现被零除时,Matlab就返回inf,并不中断执行而继续计算 • NaN 定义为“Not a Number”,这个非数值要么是%类型,要么是inf/inf

  16. 向量的创建 • 在matlab的命令窗口键入以下字符 • >> a = [1 2 3 4 5 6 9 8 7] • a = • 1 2 3 4 5 6 9 8 7 • 希望得到元素从0到20,步距为2的一个向量,只需键入以下命令即可 • >> t = [0:2:20] • t = • 2 4 6 8 10 12 14 16 18 20

  17. 矩阵的创建 输入矩阵时每一行元素有分号或者回车键分隔。例如: • B = [1 2 3 4;5 6 7 8;9 10 11 12] • B = • 1 2 3 4 • 5 6 7 8 • 9 10 11 12

  18. 各种运算符

  19. 语句 Matlab语言最基本的赋值语句结构为: 变量名列表=表达式 注1:整个赋值语句以;结束,则不在屏幕上返回结果,否则立即返回结果。 注2:多个语句可在同一行,用逗号分开。 注3:表达是太长可以用续行符号…

  20. 函数 • Matlab由包括许多标准函数,每个函数都完成某一特定功能的代码组成。 • Matlab也允许用户编写自己所需的函数,其扩展名为.m,其中必须以关键字function开头.

  21. 流程控制 • 循环语句 for, while • 条件转移 if end, if elseif else end • 开关语句 switch case • 注是语句 % • 中断语句 break • 暂停语句 pause • 回显语句 echo on/off

  22. 1、for循环语句 基本格式 for 循环变量=起始值:步长:终止值 循环体 end 步长缺省值为1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。

  23. 2、while循环语句 基本格式 while 表达式 循环体 end • 若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。 • While循环和for循环的区别在于,while循环结构的循环体被执行的次数不是确定的,而for结构中循环体的执行次数是确定的。

  24. 3、if,else,elseif语句 (1)if 逻辑表达式 执行语句 end (2)if 逻辑表达式 (3) if 逻辑表达式1 执行语句1 执行语句1 else elseif 逻辑表达式2 执行语句2 执行语句2 end … end

  25. 4、switch语句 switch 表达式(可以是标量或字符串) case 值1 语句1 case 值2 语句2 …. otherwise 语句3 end

  26. MATLAB程序的基本组成结构 %说明 清除命令:清除workspace中的变量和图形(clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱 ………提供的专用命令 控制循环 : 包含for,if then,switch,while等语句 逐行执行命令 ……… end 绘图命令:将运算结果绘制出来 • 当然更复杂程序还需要调用子程序,或与simulink以及其他应用程序结合起来。

  27. MATLAB的程序类型 MATLAB的程序类型有三种,一种是在命令窗口下执行的脚本M文件;另外一种是可以存取的M文件,也即程序文件;最后一种是函数(function)文件。 2、程序M文件 • 以.m格式进行存取,包含一连串的MATLAB指令和必要的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。 • 程序运行时只需在工作空间中键入其名称即可。 1、脚本M文件 在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了。

  28. 3、函数文件 与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。用help命令可以显示它的注释说明。 具有标准的基本结构。 (1)函数定义行(关键字function) • function[out1,out2,..] = filename(in1,in2,..) • 输入和输出(返回)的参数个数分别由nargin和nargout两个MATLAB保留的变量来给出。 (2)第一行帮助行,即H1行 • 以(%)开头,作为lookfor指令搜索的行 (3)函数体说明及有关注解 • 以(%)开头,用以说明函数的作用及有关内容 (4)函数体语句 • 函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在MATLAB的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。

  29. Graphics MATLAB提供了丰富的绘图功能 help graph2d可得到所有画二维图形的命令 help graph3d可得到所有画三维图形的命令

  30. 1、基本的绘图命令 plot(x1,y1,option1,x2,y2,option2,…) x1,y1给出的数据分别为x,y轴坐标值,option1为选项参数,以逐点连折线的方式绘制1个二维图形;同时类似地绘制第二个二维图形。 这是plot命令的完全格式,在实际应用中可以根据需要进行简化。比如: plot(x,y);plot(x,y,option) 选项参数option定义了图形曲线的颜色、线型及标示符号,它由一对单引号括起来。

  31. 2、选择图像 figure(1);figure(2);…;figure(n) 打开不同的图形窗口,以便绘制不同的图形。 3、grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格 4、hold on:把当前图形保持在屏幕上不变,同时 允许在这个坐标内绘制另外一个图形。 hold off:使新图覆盖旧的图形 5、设定轴的范围 axis([xmin xmax ymin ymax]) axis(‘equal’):将x坐标轴和y坐标轴的单位刻度大小调整为一样。

  32. 6、文字标示 text(x,y,’字符串’) 在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。 • title(‘字符串’) 在所画图形的最上端显示说明该图形标题的字符串。 • xlabel(‘字符串’),ylabel(‘字符串’) 设置x,y坐标轴的名称。 • 输入特殊的文字需要用反斜杠(\)开头。 7、legend(‘字符串1’,‘字符串2’,…,‘字符串n’) • 在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。

  33. 8、subplot(m,n,k):分割图形显示窗口 m:上下分割个数,n:左右分割个数,k:子图编号 9、semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。 semilogy:绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。 10、了解应用型绘图指令:可用于数值统计分析或离散 数据处理 bar(x,y);hist(y,x) stairs(x,y);stem(x,y)

  34. 三维的绘图命令基本与二维的相同,稍有差别,不再详述。三维的绘图命令基本与二维的相同,稍有差别,不再详述。

  35. Examples • 绘图实例 • 函数分析 • 矩阵运算 • 线性方程组 • 曲线拟合 • 微分方程

  36. 绘图实例

  37. 函数分析 fplot('func',[-1 1.5]) %作图 result = func(0) %求函数值 xsolve = fzero('func',3) %求解 Xmin = fminbnd('func',0.5,1) %求最小值

  38. 矩阵运算 • A = [1 2 3 ; 4 5 6 ; 7 8 9]; • B = [1 2 3 ; 4 5 6]; • C = [1 0 1 ; 0 2 3 ; 4 5 0]; • expC = exp(C) • expM = expm(C) • logM = logm(expM) • detA = det(A) • traceA = trace(A) • BT = B' • invA = inv(A) • rankA = rank(A) • [EigenVectors,EigenValues] = eig(A)

  39. 线性方程组与特征值 A = [ 3 1 -1 ; 1 2 4 ; -1 4 5 ];b = [ 3.6 ; 2.1 ; -1.4 ];X = A\b[EigenVectors,EigenValues] = eig(A)

  40. %一次多项是拟合 %已知离散点 x = [1 1.5 3 4 5 6 6.5 7 8]; y = [1.2 1 1.7 2.5 2 2.3 2.5 3 3.1]; %最小二乘拟合 p1 = polyfit(x,y,1); y1 = polyval(p1,x); plot(x,y1); hold on plot(x,y,'ro') grid on %7次多项是拟合 %已知离散点 x = [1 1.5 3 4 5 6 6.5 7 8]; y = [1.2 1 1.7 2.5 2 2.3 2.5 3 3.1]; %最小二乘拟合 p7 = polyfit(x,y,7); xi = 1:0.25:8; yi = polyval(p7,xi); plot(x,y,'*r',xi,yi); grid on 曲线拟合

  41. 微分方程 • Van der Pol Equation

  42. 标准形式改写

  43. 程序实现 • function dydt = DifferentialCoe(t,y) • dydt = [y(2);(1-y(1)^2)*y(2)-y(1)];

More Related