第一讲MATLAB操作基础

Download Report

Transcript 第一讲MATLAB操作基础

Matlab软件与应用
太原理工大学 数学系
教师:刘晓峰
课程安排
学时:32
 考核方式:考试+上机+考勤
 考试时间:16周后
 教材:MATLAB基础及其应用教程

课程任务
通过本课程的教学,应使同学们熟练掌
握常用的数学软件,培养学生运用数学软
件分析和解决数学问题和实际问题的能力。
通过对实际问题的数学处理与计算机求解,
完成建模和求解的任务,使同学们真正体
验到数学及计算机的实际应用。
本课程所学软件可以为数学建模和数学实验
等解决实际问题提供有力的平台帮助
 数学实验就是以计算机为仪器,以软件为载
体,通过实验解决实际中的数学问题
 而我们学习数学软件就是相当于学习如何使
用仪器

数学软件与Matlab的关系
国际上最常用的三种数学类科技应用软件为:
3M
 Matlab
 Mathematica
 Maple
 还有MathCAD

4M之间的侧重
在国际上30几个数学类科技应用软件中:
 MATLAB在数值计算方面独占鳌头
 Mathematica和Maple则分居符号计算软件的
前两名
 Mathcad因其提供计算、图形、文字处理的
统一环境而深受中学生欢迎

第1章 MATLAB操作基础
1.1 MATLAB概述
1.2 MATLAB的运行环境与安装
1.3 MATLAB集成环境
1.4 MATLAB帮助系统
1.1 MATLAB概述

1.1.1 MATLAB的发展
MATLAB语言是由美国的Clever Moler
博士于1980年开发的。
设计者的初衷是为解决“线性代数”课
程的矩阵运算问题。
取名MATLAB即Matrix Laboratory 矩
阵实验室的意思。
Matlab的详细发展历史
那是20世纪八十年代初期的事:
 时任美国新墨西哥大学计算机科学系主任的
Cleve Moler教授出于减轻学生编程负担的动
机,为学生设计了一组调用LINPACK和
EISPACK库程序的“通俗易用”的接口,此
即用FORTRAN编写的萌芽状态的MATLAB。


经几年的校际流传,在Little的推动下,由
Little、Moler、Steve Bangert合作,于1984
年成立了MathWorks公司,并把MATLAB正
式推向市场。从这时起,MATLAB的内核采
用C语言编写,而且除原有的数值计算能力
外,还新增了数据图视功能。

MATLAB以商品形式出现后,仅短短几年,
就以其良好的开放性和运行的可靠性,使原
先控制领域里的封闭式软件包(如英国的
UMIST,瑞典的LUND和SIMNON,德国的
KEDDC)纷纷淘汰,而改以MATLAB为平
台加以重建。在时间进入20世纪九十年代的
时候,MATLAB已经成为国际控制界公认的
标准计算软件。
1984年,MATLAB第1版(DOS版)
1992年,MATLAB 4.0版
1994年,MATLAB 4.2版
1997年,MATLAB 5.0版
1999年,MATLAB 5.3版
2000年,MATLAB 6.0版
2001年,MATLAB 6.1版
2002年,MATLAB 6.5版
2004年,MATLAB 7.0版
告别DOS版
1993年
MathWorks公司
从加拿大滑铁卢
大学购得Maple的
5.0的MATLAB
使用权,推出了
拥有更丰富的数
符号计算工具包。
据类型和结构、
更友善的面向对
象、更加快速精
良的图形可视、
更广博的数学和
数据分析资源、
更多的应用开发
工具。
Matlab的更新
V1 矩阵语言/图形
 V2 数据分析与处理
 V3 应用工具
 V4 科学数据可视化(亮点)
GUI开发工具
稀疏矩阵

Matlab的更新

V5 多维数组
结构与嵌套数组
面向目标编程
集成编辑/调试工具
实时仿真
Matlab的影响



就影响而言,至今仍然没有一个别的计算软件可与
MATLAB匹敌。
在欧美大学里,诸如应用代数、数理统计、自动控
制、数字信号处理、模拟与数字通信、时间序列分
析、动态系统仿真等课程的教科书都把MATLAB作
为内容。在那里,MATLAB是攻读学位的大学生、
硕士生、博士生必须掌握的基本工具。
在国际学术界,MATLAB已经被确认为准确、可靠
的科学计算标准软件。在许多国际一流学术刊物上,
(尤其是信息科学刊物),都可以看到MATLAB的
应用。
MATLAB语言的特点:






语言简洁紧凑,语法限制不严,程序设计
自由度大,可移植性好
运算符、库函数丰富
图形功能强大
界面友好、编程效率高
扩展性强

它将一个优秀软件的易用性与可靠性、通用
性与专业性 、一般目的的应用与高深的科学
技术应用有机的相结合。

MATLAB是一种直译式的高级语言,比其它
程序设计语言容易。
MATLAB语言与其它语言的关系仿
佛和C语言与汇编语言的关系一样
计算机语言的发展
管理、可视化
数值运算
智能化
解析运算
标志着计算机语言向“智能化”方
向发展,被称为第四代编程语言。

MATLAB已经不仅仅是一个“矩阵实验室”
了,它集科学计算、图象处理;声音处理
于一身,并提供了丰富的Windows图形界面
设计方法。

MATLAB语言是功能强大的计算机高级语言,
它以超群的风格与性能风靡全世界,成功地
应用于各工程学科的研究领域。
Matlab能在各领域做什么

工业研究与开发

数学教学,特别是线性代数

数值分析和科学计算方面的教学与研究

电子学、控制理论和物理学等工程和科学学科
方面的教学与研究

经济学、化学和生物学等计算问题的所有其他
领域中的教学与研究
例:用简短命令计算并绘制在0x6范围内的
sin(2x)、sinx2 、 sin2x。
x=linspace(0,6)
y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;
plot(x,y1,x, y2,x, y3)
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
5
6
阶梯图
用四种方法描述cos(x)*sin(y)图形
1
0.5
0
-0.5
-1
4
2
5
0
0
-2
-4
-5
4
3
1
2
0.5
1
0
0
-0.5
-1
-1
4
-2
2
5
0
-3
0
-2
-4
-5
-4
-4
-2
0
2
4
1.1.2 MATLAB的主要功能

1.数值计算功能
MATLAB以矩阵作为数据操作的基本单
位,还提供了十分丰富的数值计算函数。
MATLAB提供了丰富的矩阵运算处理功能,
是基于矩阵运算的处理工具。
变量 矩阵,运算 矩阵的运算。
例如: C = A + B ,A,B,C都是矩阵,是矩
阵的加运算。
即使一个常数,Y=5,MATLAB也看做是
一个11的矩阵。
2 .符号计算功能

Matlab和著名的符号计算语言Maple相结合,使得Matlab具
有符号计算功能。

符号运算即用字符串进行数学分析。

允许变量不赋值而参与运算。

用于解代数方程、微积分、复合导数、积分、二重积分、有
理函数、微分方程、泰勒级数展开、寻优等等,可求得解析
符号解。
3.绘图功能与计算结果的可视化

具有高层绘图功能——两维、三维绘图

具有底层绘图功能——句柄绘图

使用plot函数可随时将计算结果可视化
4.图形化程序编制功能

动态系统进行建模、仿真和分析的软件包

用结构图编程,而不用程序编程

只需拖几个方块、连几条线,即可实现编
程功能
5.MATLAB工具箱
MATLAB包含两部分内容:基本部分和各种可选的
工具箱。
MATLAB工具箱分为两大类:功能性工具箱和学科
性工具箱。
许多学科,在MATLAB中都有专用工具箱,现已有
30多个工具箱,但MATLAB语言的扩展开发还远远
没有结束,各学科的相互促进,将使得MATLAB更
加强大。










MATLAB主工具箱
符号数学工具箱
SIMULINK仿真工具箱
控制系统工具箱
信号处理工具箱
图象处理工具箱
通讯工具箱
系统辨识工具箱
神经元网络工具箱
金融工具箱
6.MATLAB的兼容功能

可与C语言、FORTURE语言跨平台兼容

用函数CMEX、FMEX实现

此功能不推荐使用
7.MATLAB的容错功能
非法操作时,给出提示,并不影响其操作
 例如:





1/0
Warning: Divide by zero
ans =
Inf
8.MATLAB的开放式可扩充结构
Matlab 所有函数都是开放的
 用户可按自己意愿随意更改
 正因为此功能,使得Matlab的应用越来越广
泛

9.强大的联机检索帮助系统
可随时检索Matlab函数
可随时查询Matlab函数的使用方法
Matlab的功能产品
1.Matlab compiler
将m文件转化为c文件,加快运行速度。
2. Matlab c/c++ Graphics Library
由m文件产生GUI独立运行的c程序代码。
3. Matlab c/c++ Math Library
由m文件产生独立运行的c程序代码。
4.Databast Toolbox
在Matlab中进行对数据库的读写。
5.Databast Acquisitition Toolbox
在Matlab中直接读取数据库卡的数据。
6.Excel Link
可让Excel世界直接调用Matlab的数据。
7.Matlab Report Generator
Matlab的报告产生器。
8.Matlab Runtime Sever
将个人应用程序包成一个软件,并在没有Matlab的环
境下执行。
9.Matlab Web Sever
与NT的Web Sever合用在Sever端执行Matlab的运算
或绘图。
1.1.3 初识MATLAB

例1-1 绘制正弦曲线和余弦曲线。
x=[0:0.5:360]*pi/180;
plot(x,sin(x),x,cos(x));

例1-2 求方程 3x4+7x3 +9x2-23=0的全部根。
p=[3,7,9,0,-23]; %建立多项式系数向量
x=roots(p);
%求根

例1-3 求积分
quad('x.*log(1+x)',0,1)

例1-4 求解线性方程组
a=[2,-3,1;8,3,2;45,1,-9];
b=[4;2;17];
x=inv(a)*b
1.2
 1.2.1
MATLAB的运行环境与安装
MATLAB的运行环境
硬件环境:
(1) CPU
(2) 内存
(3) 硬盘
(4) CD-ROM驱动器和鼠标。
软件环境:
(1) Windows 98/NT/2000 或Windows XP、
Vista、windows7、linux等
(2) 其他软件根据需要选用
1.2.2 MATLAB的安装

安装Matlab 7.2系统,需运行系统自带的安
装程序setup.exe,可以按照安装提示依次操
作。

安装Matlab 7.2系统,有时侯需要安装虚拟
光驱软件,然后依次顺序安装一个或多个不
同的镜象文件。

一般安装过程都比较漫长,请耐心等待。
1.3

MATLAB集成环境
1.3.1 启动与退出MATLAB集成环境
1.MATLAB系统的启动
与一般的Windows程序一样,启动Matlab系统有3种常见方
法:
(1)使用Windows“开始”菜单
(2)运行Matlab系统启动程序
c:\matlab\bin\matlab.bat 或者
c:\matlab\bin\matlab.exe
(3) 利用桌面的快捷方式

注意:在work目录下建立startup.m 就可
以产生欢迎效果。在m文件里输入:
disp('嗨!!!怎么样?今天心情愉快么?
打起精神来!Do It !!! ..........');

启动Matlab后,将进入Matlab 7.2集成环境。
Matlab 7.2集成环境包括Matlab主窗口、命
令窗口(Command Window)、工作空间窗
口(Workspace)、命令历史窗口(Command
History)、当前目录窗口(Current Directory)
和启动平台窗口(Launch Pad)。

如图所示——————————————
2.MATLAB系统的退出

要退出Matlab系统,也有3种常见方法:
(1) 在Matlab主窗口File菜单中选择Exit
Matlab命令。
(2) 在Matlab命令窗口输入Exit或Quit命
令。
(3) 单击Matlab主窗口的“关闭”按钮。
1.3.2 MATLAB主窗口

Matlab主窗口是Matlab的主要工作界面。主
窗口除了嵌入一些子窗口外,还主要包括菜
单栏和工具栏。
1.菜单栏
在Matlab 7.2主窗口的菜单栏,共包含File、
Edit、Debug、Desktop、Window和Help 6个
菜单项。

(1) File菜单项:File菜单项实现有关文件的
操作。
(2) Edit菜单项:Edit菜单项用于命令窗口
的编辑操作。
(3) Debug菜单项:Debug菜单项用于调试
Matlab的程序。

(4) Desktop菜单项: Desktop菜单项用于设置 Matlab
的窗口布局。
(5) Window菜单项:主窗口菜单栏上的Window菜
单,包含一个子菜单Close all,用于关闭所有
打开的编辑器窗口,包括M-file、Figure、Model
和GUI窗口。
(6) Help菜单项:Help菜单项用于提供帮助信息。

2.工具栏
Matlab7.2主窗口的工具栏共提供了11个命
令按钮。这些命令按钮均有对应的菜单命
令,但比菜单命令使用起来更快捷、方便。
1.3.3 命令窗口

命令窗口是MATLAB的主要交互窗口,用
于输入命令并显示除图形以外的所有执行
结果。
MATLAB命令窗口中的“>>”为命令提示
符,表示MATLAB正在处于准备状态。
在命令提示符后键入命令并按下回车键后,
Matlab就会解释执行所输入的命令,并在命
令后面给出计算结果。
如果希望结果不被显示,则只要在语句之后
加上一个分号(;)即可。此时尽管结果没
有显示,但它依然被赋值并在Matlab工作空
间中分配了内存。

一般来说,一个命令行输入一条命令,命令
行以回车结束。但一个命令行也可以输入若
干条命令,各命令之间以逗号分隔,若前一
命令后带有分号,则逗号可以省略。
例如:
p=15, m=35
p=15; m=35

如果一个命令行很长,一个物理行之内写不
下,可以在第一个物理行之后加上3个小黑点
并按下回车键,然后接着下一个物理行继续
写命令的其他部分。3个小黑点称为续行符,
即把下面的物理行看作该行的逻辑继续。

在Matlab里,有很多的控制键和方向键可用
于命令行的编辑。
(1)方向键和控制键可以编辑修改已输入的
命令
:回调上一行命令
:回调下一
行命令
(2)命令窗口的分页输出
more off:不允许分页 more on:允许分页
more(n):指定每页输出的行数
matlab与dos兼容命令
1.dir—
清单
 例如:
 dir
 dir
 dir

可列出指定目录下的文件和子目录
可显示当前目录下的所有文件
c:\matlab
c:\matlab\*.m

2.cd—可改变当前工作目录
cd

c:\matlab\toolbox
3.type — 可显示指定文件的全部内容
type
myfile.m
4.delete — 删除指定文件

del
abc — 删除当前目录下的abc文件

del
c:\matlab\aaa.m

注意:只可删除用户文件,其它文件不要轻
易删除,否则系统会瘫痪
1.3.4 工作空间窗口

工作空间是Matlab用于暂时存储各种变量和
结果的内存空间。在该窗口中显示工作空间
中所有变量的名称、大小、字节数和变量类
型说明,可对变量进行观察、编辑、保存和
删除。
1、变量
(1)变量的命名:变量的名字必须以字母开
头(不能超过19个字符),之后可以是任意
字母、数字或下划线;变量名称区分字母的
大小写;变量中不能包含有标点符号。
使用exist来查询变量或函数是否存在?

exist('A') returns:
0 if A does not exist
1 if A is a variable in the workspace
2 if A is an M-file on MATLAB's search
path. It also returns 2 when
A is the full pathname to a file or when
A is the name of an
ordinary file on MATLAB's search path
3 if A is a MEX- or DLL-file on MATLAB's
search path
4 if A is a MDL-file on MATLAB's search
path
5 if A is a built-in MATLAB function
6 if A is a P-file on MATLAB's search path
7 if A is a directory
8 if A is a Java class








eps — 容差变量,(计算机的最小数)在 pc机上
= 2-52
pi — 圆周率的近似值3.1415926
inf或Inf — 表示正无大,定义为1/0
NaN — 非数,(Not a Number)它产生于0×,
0/0,/ 等运算,即 0*inf
i,j — 虚数单位 flops —浮点运算数
ans — 对于未赋值运算结果,自动赋给ans
nargin —函数的输入变量个数
nargout —函数的输出变量个数

数据的显示格式由format命令控制。

format只是影响结果的显示,不影响其计算
与存储;MATLAB总是以双字长浮点数(双精
度)来执行所有的运算。

如果结果为整数,则显示没有小数;如果结
果不是整数,则输出形式有:
format (short):短格式(5位定点数)
99.1253
format long:长格式(15位定点数
99.12345678900000
format short e:短格式e方式 9.9123e+001
format long e:长格式e方式
9.912345678900000e+001
format bank:2位十进制 99.12
format hex:十六进制格式
format compact:屏幕显示方式为紧凑,数据间隔小
format loose:屏幕显示方式为松散,为系统默认格式
简单的数学运算
1、常用的数学运算符
+,—,*(乘),/(左除),\(右除),
^(幂)
在运算式中,MATLAB通常不需要考虑空格;多条
命令可以放在一行中,它们之间需要用分号隔开;
逗号告诉MATLAB显示结果,而分号则禁止结果显
示。
2、常用数学函数
abs,sin,cos,tan,asin,acos,
atan,sqrt,exp,imag,real,sign,
log,log10,conj(共扼复数)等
(例exp2_2.m)

变量查询函数who与whos (简与全)

作用都是列出在matlab工作空间中已经驻
留的变量名清单

不同的是whos在给出驻留变量的同时,还
给出他们的维数及性质
永久变量

在matlab工作内存中,驻留了几个由系统
本身在启动时定义的变量,我们称为永久
变量

永久变量用who指令是查看不到的,只可
随时调用

clear :清除工作空间中所有的变量

clear变量名:清除指定的变量
 1.3.5
当前目录窗口和搜索路径
1.当前目录窗口
当前目录是指MATLAB运行文件时的工作目
录,只有在当前目录或搜索路径下的文件、
函数可以被运行或调用。
在当前目录窗口中可以显示或改变当前目
录,还可以显示当前目录下的文件并提供
搜索功能。

将用户目录设置成当前目录也可使用cd命
令。例如,将用户目录c:\mydir设置为当前
目录,可在命令窗口输入命令:
cd c:\mydir

cd path:由当前目录进入path目录

cd ..:返回上一级目录

cd:显示当前目录
2.MATLAB的搜索路径
当用户在MATLAB命令窗口输入一条命令
后,MATLAB按照一定次序寻找相关的文
件。基本的搜索过程是:
(1) 检查该命令是不是一个变量。
(2) 检查该命令是不是一个内部函数。
(3) 检查该命令是否当前目录下的M文件。
(4) 检查该命令是否MATLAB搜索路径中其
他目录下的M文件。

用户可以将自己的工作目录列入Matlab搜
索路径,从而将用户目录纳入Matlab系统
统一管理。设置搜索路径的方法有:
(1) 用path命令设置搜索路径。

Path 显示matlab启动时设定的搜索路径

例如,将用户目录c:\mydir加到搜索路径下,
可在命令窗口输入命令:
path(path,’c:\mydir’)

可将你需要的目录永久纳入matlab搜索路径

打开c:\matlab\toolbox\local\matlabrc.m

在所有搜索路径后加上‘c:\mydir\;’,…
(2) 用对话框设置搜索路径

在Matlab的File菜单中选Set Path命令或在
命令窗口执行pathtool命令,将出现搜索路
径设置对话框。通过Add Folder或Add with
Subfolder命令按钮将指定路径添加到搜索路
径列表中。
在修改完搜索路径后,则需要保存搜索路径。
1.3.6 命令历史记录窗口

在默认设置下,历史记录窗口中会自动保留
自安装起所有用过的命令的历史记录,并且
还标明了使用时间,从而方便用户查询。而
且,通过双击命令可进行历史命令的再运行。
如果要清除这些历史记录,可以选择Edit菜
单中的Clear Command History命令。
1.3.7 启动平台窗口和Start按钮

Matlab 7.2的启动平台窗口可以帮助用户方
便地打开和调用MATLAB的各种程序、函数和
帮助文件。
Matlab 7.2主窗口左下角还有一个Start按
钮,单击该按钮会弹出一个菜单,选择其中
的命令可以执行MATLAB产品的各种工具,并
且可以查阅MATLAB包含的各种资源。
1.4.1
1.4
MATLAB帮助系统
帮助窗口
进入帮助窗口可以通过以下3种方法:
(1) 单击Matlab主窗口工具栏中的Help按钮。
(2) 在命令窗口中输入helpwin、helpdesk或
doc。
(3) 选择Help菜单中的“Matlab Help”选项。
1.4.2 帮助命令

Matlab帮助命令包括help、lookfor以及模
糊查询。
1.help命令
在Matlab 7.2命令窗口中直接输入help命
令将会显示当前帮助系统中所包含的所有
项目,即搜索路径中所有的目录名称。同
样,可以通过help加函数名来显示该函数
的帮助说明。

help
显示help 主题一览表

help help
显示help 的帮助信息

虽然help可以随时提供帮助,但必须知道准
确的函数名称。当不能确定函数名称时,
help就无能为力了。
2.lookfor命令

help命令只搜索出那些关键字完全匹配的结
果,lookfor命令对搜索范围内的M文件进行
关键字搜索,条件比较宽松。
lookfor命令只对M文件的第一行进行关键字
搜索。若在lookfor命令加上-all选项,则可
对M文件进行全文搜索。
3.模糊查询

Matlab 6.0以上的版本提供了一种类似模糊
查询的命令查询方法,用户只需要输入命令
的前几个字母,然后按Tab键,系统就会列出
所有以这几个字母开头的命令。
1.4.3 演示系统

在帮助窗口中选择演示系统(Demos)选项卡,
然后在其中选择相应的演示模块,或者在命
令窗口输入Demos,或者选择主窗口Help菜单
中的Demos子菜单,打开演示系统。
1.4.4 远程帮助系统

在MathWorks公司的主页
(http://www.mathworks.com)上可以找到很
多有用的信息,国内的一些网站也有丰富的
信息资源。