43
MATLAB 软软软软 九九九九九九九九九九九九 2004.3

MATLAB 软件简介

  • Upload
    giona

  • View
    142

  • Download
    4

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: MATLAB 软件简介

MATLAB 软件简介

九江职业技术学院基础课部2004.3

Page 2: MATLAB 软件简介

学习 MATLAB

• 什么是 MATLAB?• MATLAB 能干什么 ?• 掌握 MATLAB ……• 应用实例

Page 3: MATLAB 软件简介

什么是 MATLAB?1 .MATLAB 代表 MATrix LABoratory• 它的首创者是美国新墨西哥大学计算机系的系主任

Cleve Moler 博士,他在教授线性代数课程发现其他语言很不方便,篇构思开发了 MATLAB 。最初采用 FORTRAN 语言编写, 20 世纪 80 年代后出现了 MATLAB 的第二版,全部采用 C 语言编写 .

• 1984 年 Moler 博士和一批数学家及软件专家创建了 MathWorks 公司,专门开发 MATLAB 。

• 1993 年出现了微机版,到 2003 年是 6.5 版

Page 4: MATLAB 软件简介

2 . 一种演草纸式的科学计算语言

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

Page 5: MATLAB 软件简介

MATLAB 能干什么?MATLAB 可以进行:• 数学计算、算法开发、数据采集• 建模、仿真、原型 • 数据分析、开发和可视化• 科学和工程图形应用程序的开发,包括图形用户

界面的创建。MATLAB 广泛应用于:• 数值计算、图形处理、符号运算、数学建模、系

统辨识、小波分析、实时控制、动态仿真等领域。

Page 6: MATLAB 软件简介

掌握 MATLAB ……MATLAB 的构成:• MATLAB 开发环境:进行应用研究开发的交互式平台• MATLAB 数学与运算函数库:用于科学计算的函数• MATLAB 语言:进行应用开发的编程工具• 图形化开发:二维、三维图形开发的工具• 应用程序接口 (API) :用于与其他预言混编• 面向专门领域的工具箱:小波工具箱、神经网络工具

箱、信号处理工具箱、图像处理工具箱、模糊逻辑工具箱、优化工具箱、鲁棒控制工具箱等几十个不同应用的工具箱。

Page 7: MATLAB 软件简介

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

Page 8: MATLAB 软件简介

命令窗口• 可在提示符后输入交互式命令 • 结果会自动的产生• 例如:

MATLAB prompt (>>) and cursor (|)

command (typed at prompt)

MATLAB output

Page 9: MATLAB 软件简介

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

Page 10: MATLAB 软件简介

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

Page 11: MATLAB 软件简介

帮助窗口

Page 12: MATLAB 软件简介

The MATLAB Language

MATLAB 语言的特点• Matlab 的基本数据单元是不需指定维数的矩

阵。• Matlab 的所有计算都是通过双精度进行的,

在内存中的数都是双精度的。• double 是一个双精度浮点数,每个存储的双

精度数用 64 位。• char 用于存储字符,每个存储的字符用 16 位。

Page 13: MATLAB 软件简介

程序

•M文件与m函数 •图形显示

•流程控制

其它输出

•函数

•语句

变量 •各种运算符

MATLAB 的程序构成:

Page 14: MATLAB 软件简介

常变量及其命名规则

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

Page 15: MATLAB 软件简介

Matlab中预定义变量 Ans 分配最新计算表达式的值,这个表达式并没

有给定一个名字• Eps 返回机器精度• Realmax 返回计算机能处理的最大浮点数• Realmin 返回计算机能处理的最小的非零浮点

数• Pi ,3.14159265• Inf 定义为 1/0 。当出现被零除时, Matlab 就

返回 inf ,并不中断执行而继续计算• NaN 定义为“ Not a Number” ,这个非数值要

么是%类型,要么是 inf/inf

Page 16: MATLAB 软件简介

向量的创建• 在 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

Page 17: MATLAB 软件简介

矩阵的创建 输入矩阵时每一行元素有分号或者回车键分隔。例如:

• • 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

Page 18: MATLAB 软件简介

各种运算符

Page 19: MATLAB 软件简介

Matlab 语言最基本的赋值语句结构为:

变量名列表 =表达式

注 1 :整个赋值语句以;结束,则不在屏幕上返回结果,否则立即返回结果。

注 2 :多个语句可在同一行,用逗号分开。注 3 :表达是太长可以用续行符号…

语句

Page 20: MATLAB 软件简介

函数

• Matlab由包括许多标准函数,每个函数都完成某一特定功能的代码组成。

• Matlab也允许用户编写自己所需的函数,其扩展名为 .m,其中必须以关键字 function开头 .

Page 21: MATLAB 软件简介

流程控制

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

Page 22: MATLAB 软件简介

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

Page 23: MATLAB 软件简介

2 、while循环语句基本格式while 表达式 循环体 end•若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。

While循环和 for循环的区别在于, while循环结构的循环体被执行的次数不是确定的,而 for结构中循环体的执行次数是确定的。

Page 24: MATLAB 软件简介

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

Page 25: MATLAB 软件简介

4 、 switch 语句

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

Page 26: MATLAB 软件简介

MATLAB 程序的基本组成结构%说明清除命令:清除workspace 中的变量和图形( clear,clos

e)定义变量:包括全局变量的声明及参数值的设定逐行执行命令:指 MATLAB 提供的运算指令或工具箱… … … 提供的专用命令控制循环 : 包含 for,if then,switch,while 等语句

逐行执行命令… … …end绘图命令:将运算结果绘制出来

• 当然更复杂程序还需要调用子程序,或与 simulink以及其他应用程序结合起来。

Page 27: MATLAB 软件简介

2、程序M文件• 以 .m格式进行存取,包含一连串的MATLAB指令和必要

的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。

• 程序运行时只需在工作空间中键入其名称即可。

MATLAB 的程序类型

MATLAB的程序类型有三种,一种是在命令窗口下执行的脚本M文件;另外一种是可以存取的M文件,也即程序文件;最后一种是函数( function)文件。1、脚本M文件在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了。

Page 28: MATLAB 软件简介

( 1)函数定义行(关键字 function)• function[out1,out2,..] = filename(in1,in2,..)• 输入和输出(返回)的参数个数分别由nargin和 nargout两

个 MATLAB保留的变量来给出。( 2)第一行帮助行,即H1 行• 以(%)开头,作为 lookfor 指令搜索的行( 3)函数体说明及有关注解• 以(%)开头,用以说明函数的作用及有关内容( 4)函数体语句• 函数体内使用的除返回和输入变量这些在 function语句中直

接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在 MATLAB 的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。

3 、函数文件与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。用 help命令可以显示它的注释说明。具有标准的基本结构。

Page 29: MATLAB 软件简介

Graphics

MATLAB 提供了丰富的绘图功能

help graph2d 可得到所有画二维图形的命令help graph3d 可得到所有画三维图形的命令

Page 30: MATLAB 软件简介

1 、基本的绘图命令plot( x1,y1,option1,x2,y2,option2,…)

x1,y1给出的数据分别为 x,y 轴坐标值, option1为选项参数,以逐点连折线的方式绘制 1 个二维图形;同时类似地绘制第二个二维图形。

这是 plot 命令的完全格式,在实际应用中可以根据需要进行简化。比如:plot(x,y);plot(x,y,option)选项参数 option定义了图形曲线的颜色、线型及标示符号,它由一对单引号括起来。

Page 31: MATLAB 软件简介

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 坐标轴的单位刻度大小调整为一样。

Page 32: MATLAB 软件简介

6 、文字标示text(x,y,’字符串’ )在图形的指定坐标位置 (x,y) 处,标示单引号括起来的

字符串。• title(‘字符串’ )在所画图形的最上端显示说明该图形标题的字符串。• xlabel(‘字符串’ ) , ylabel(‘字符串’ )设置 x, y 坐标轴的名称。• 输入特殊的文字需要用反斜杠( \)开头。

7、 legend(‘字符串 1’,‘字符串 2’,…,‘字符串n’)

• 在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。

Page 33: MATLAB 软件简介

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 )

Page 34: MATLAB 软件简介

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

Page 35: MATLAB 软件简介

Examples

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

Page 36: MATLAB 软件简介

绘图实例

Page 37: MATLAB 软件简介

函数分析

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

1)%求最小值

Page 38: MATLAB 软件简介

矩阵运算• 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)

Page 39: MATLAB 软件简介

线性方程组与特征值

A = [ 3 1 -1 ; 1 2 4 ; -1 4 5 ];b = [ 3.6 ; 2.1 ; -1.4 ];X = A\b[EigenVectors,EigenValues] = eig(A)

Page 40: MATLAB 软件简介

曲线拟合• %一次多项是拟合• % 已知离散点• 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

Page 41: MATLAB 软件简介

微分方程

• Van der Pol Equation

0)1( 22

2

ydt

dyy

dt

yd

Page 42: MATLAB 软件简介

标准形式改写

1212

2

21

)1( yyydt

dy

ydt

dy

Page 43: MATLAB 软件简介

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