MATLAB的工作环境与基本操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
M A T L A B的工作环境与基本
操作
-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII
第一章 MATLAB入门
学习目标:1、了解MATLAB的发展历史,熟悉MATLAB操作环境。
2、掌握MATLAB变量、数值、数学函数输入输出的操作。
第一节 MATLAB操作环境
一、 MATLAB的发展历史:
MATLAB是矩阵(Matrix)和实验室(Laboratory)两个英文单词的前三个字母组合而成,由美国新墨西哥大学计算机系主任Cleve Moler博士首创,由美国Mathworks公司于1982年推出的一套高性能的集数值计算、符号运算和图形处理于一体的科学计算软件。
20世纪70年代Cleve Moler博士在讲授线性代数课时,发现用其它高级语言编程极不方便,为减轻学生负担,便构思用FORTRAN语言开发了MATLAB的第一代版本。
1983年Cleve Moler博士与工程师John Litlle、Steve Banger一起合作开发了MATLAB第二代版本,该版本全部用C语言编写,使MATLAB不仅具有数值计算功能,而且具有数据可视化功能。
1984年Cleve Moler博士和一批数学家、软件专家成立了Mathworks公司,专门从事MATLAB的开发,并把MATLAB推向市场。
从20世纪70年代最初的版本,分别推出基于Dos平台的第一代商业版本、基于Windows3.x平台的MATLAB4.x版本、基于
Windows95、Windows98操作系统的MATLAB5.x版本、基于
Windows98/2000/XP平台的MATLAB6.x版本、MATLAB7.x版本。
MATLAB历经几十年的不断完善和扩展,它不仅是线性代数、概率论及数理统计、自动控制理论、数字信号处理、动态系统仿真、数学建模、时间序列分析等课程的基本教学工具,而且走出学校,在工业生产、科学研究领域成为国际公认的具有高可靠性的高级计算机编程语言。
二、 MATLAB的主要特点:
目前较为流行的数学软件有四种:MATLAB、Mathematica、Maple、MathCAD。
MATLAB自问世以来,一直以数值计算称雄,Mathematica和Maple在符号运算方面功能突出,MathCAD因其可同时提供计算平台和写作平台而拥有很多用户。
MATLAB的主要特点是:
1、用MATLAB编写程序与人进行科学计算的思路和表达方式一致,编程
过程犹如在演算纸上排列出公式与求解问题,易学易懂。
MATLAB中最基本、最主要的成分是函数,输入表达式或函数命令后,系统会立即进
行处理,然后返回结果,中间过程在计算机内部运行,用户看不见也不
必关心中间的计算过程,极为快捷。
2、程序调试方便。
在命令窗口直接输入MATLAB语句命令或调用M文件
的语句,每输入一条语句,就立即进行处理。
如果有错,计算机屏幕上
就会立刻给出详细的出错信息,但每次运行只显示第一个错误,用户可
以边修改边执行,直到正确为止。
3、绘图功能强大。
利用MATLAB能十分方便绘出离散的点、二维图形、
三维图形甚至四维图形,并可以对图形作修饰、注释、坐标控制,以及
着色、光照处理、改变视角、消隐等高级处理,图形非常精美。
4、源程序开放。
除内部函数外,MATLAB的核心文件和工具箱文件都是
可读可改的源文件,用户可以修改或者加入自己的函数文件来构成新的工具箱。
所谓工具箱是对MATLAB进行扩展应用的一系列MATLAB函数(或称M文件),用于求解各类学科的问题。
三、 MATLAB的操作环境:
MATLAB的操作桌面(Desktop)默认设置下有MATLAB主窗口、命令窗口(command window)、工作间管理窗口(workspace)、历史命令窗口(command history)、当前目录窗口(current directory)。
1、MATLAB主窗口位于MATLAB操作桌面上方第一栏和第二栏,包括6
个下拉菜单和10个快捷按钮,与Word的窗口相似。
2、命令窗口(command window)位于MATLAB桌面的右方,是人机交互
的主要场所。
单击该窗口右上角的键,可以弹出单独的命令窗口,包括标题栏、菜单栏、命令编辑区三部分。
若要让独立的命令窗口嵌放回桌面,则只要点击该窗口菜单栏最右侧的即可。
编辑区内的“〉〉”为提示符,表示MATLAB正处于准备状态,当在提示符后面输入一段运算式并按回车键后,MATLAB立即给出答案并再次进入准备状态。
3、工作间管理窗口(workspace)位于MATLAB桌面的左上方,是
MATLAB存储各种变量的内存空间。
在这里显示了变量的变量名、数学结构、字节数以及数据类型等信息,不同的变量类型对应不同的变量名图标。
工作间的按钮的功能是:
1):工作间添加新的变量;
2):打开在工作间中选中的变量;
3):向工作间导入数据文件;
4):保存工作间中所有变量;
5):绘制工作间中的变量
6):删除工作间中的变量
4、历史命令窗口(command history)位于MATLAB桌面的左下方,历史
窗口不但保留自安装后所有命令的的历史记录,并标明时间,而且所有记录都能复制或送到命令窗口再运行。
用户双击某行命令,该命令即在命令窗口运行。
选中某行命令单击鼠标右键,可分别进行:
1)copy(复制):将选定的内容复制到剪贴板中。
2)Evaluate Selection(执行所选命令):直接将命令送到命令窗口执行。
3)Greate M-File(建立M文件):打开一个新M文件,并将选定内容复制过去。
4)Delete Selection(删除所选命令):从历史窗口删除所选的命令。
5)Delete to Selection(删除到所选命令):删除所选前的所有命令。
6)Delete Entire History(删除全部历史记录)
5、当前目录窗口(current directory):与Workspace同一窗口,用于显示
及设置当前工作目录,同时显示当前工作目录下的文件名,文件类型及修改时间等信息,并提供搜索功能。
该窗口工具栏中各按钮的功能是:1):进入所显示的目录的上一级目录;
2):在当前目录中创建一个子目录;
3):在当前目录中查找一个文件;
4):选中该按钮后,当前目录中的文件即以类的形式现象;
5):单击该按钮后即可生成一个当前目录中的M-文件。
四、帮助系统:
MATLAB的帮助系统可分为三大类:帮助浏览器、命令窗口查询、联机演示。
1)进入帮助浏览器常用的方法是:按下主窗口中的按钮、单击Help
下拉菜单中MATLAB Help。
帮助浏览器操作界面的左侧窗口为向导页
面,右侧窗口为帮助显示页面。
帮助向导栏中有一个工具栏,在这里
可选择显示所有主题还是只显示指定帮助主题。
帮助向导页面中还有
四个按钮:Contents(帮助主题)、Index(帮助索引)、Search(查询
帮助)、Demos(演示系统)。
2)Help命令:在命令窗口输入“help”命令,查询结果就直接显示在命令窗口。
“Help”命令的用法主要有如下:
i) help :显示当前的帮助系统中所包含的所有项目,即搜索路径中
所有的目录名。
ii) help 函数名:这是查询函数语法的最简便方法。
如:help sqrt %在命令窗口会显示平方根函数的说明和用法。
iii)help+函数类名
注:MATLAB区分字母的大小写,所有的命令和函数都必须用小写。
3)联机演示:MATLAB主包和各工具包都设计有很好的演示程序,对初学者来说,对照显示屏上的显示,仔细研究实现演示的程序
十分有帮助。
进入演示系统的主要方法有:
i)在命令窗口输入命令:demo
ii) 单击MATLAB 主窗口菜单的help__demo
双击选择的对象,出现演示界面。
演示界面分为三个部分:(如图示)左
侧是可选择来演示的具体项目,右侧上方是对选中项目的文字说明,右侧下方式选中项目的子项目明细表。
上机实践:
1、在MATLAB 中,人机交互的窗口是 ,从操作桌面弹出单独的该窗口,再把它嵌放回桌面。
2、利用“help ”命令查看sin 函数、gcd 函数(求最大公约数)的用法,并求 (1)5
2sin
,3
sin
π
π
(2) 3276与128、54028与284的最大公约数 3、通过网络查询了解MATLAB 在国内的应用。
第二节 MATLAB的基本操作
一、 MATLAB的数据类型与变量:
1、数据类型:MATLAB的数据类型主要包括:数字、字符串、矩阵、数
组、单元型数据、结构型数据。
矩阵是MATLAB最基本最重要的数据
对象,单个数值(标量)看作是一行一列矩阵,列向量看作是只有一列
的矩阵,行向量看作是只有一行的矩阵。
MATLAB最常用的是数值数
组(double array)和字符串(char array)。
MATLAB可以进行数组运算
和矩阵运算,数组运算是元素对元素的元素的运算,矩阵运算强调的是
整体运算,采用线性代数的运算方法,MATLAB通过运算符的不同来
区别这两种运算。
通常数学中,数据的主要形式有数字、字母变量、表
达式、向量、矩阵。
2、MATLAB的基本算数运算符:
3、MATLAB的标点符号
4、变量命名规则:
i.变量名、函数的大小写不同;
ii.变量的第一个字符必须为英文字母,最多不超过31个字符;
iii.变量名可以包含下连符、数字、,但不能包含空格、标点;
iv.MATLAB中的关键字(又称保留字,如for,end,if,while,等等)不能用作MATLAB变量名。
注:MATLAB中标点符号必须在英文状态下输入,在中文状态下或者不能输入或者输入后运行出错,MATLAB区分字母的大小写,所有的命令和函数都必须用小写。
5、MATLAB的预定义变量:
每次启动MATLAB,系统就会自动产生下列预先定义的变量,建议用户不要使用MATLAB预先定义的变量名称
6、变量的查询与清除:
跟我学1:理解运算符、标点符号的用法
1、计算:V=33
4
r π 其中r=2
>> r=2;
>> v=4/3*pi*r^3 v =
33.5103
若在以上程序中加入…号 ,分号或逗号,结果的显示有什么变化?
2、>> sin(1:4)
ans =
0.8415 0.9093 0.1411 -0.7568
3、写出等差数列{ 4
1
2-n }的前十项。
>> n=1:10;
>> an=2*n-1/4 an =
Columns 1 through 5
1.7500 3.7500 5.7500 7.7500 9.7500 Columns 6 through 10
11.7500 13.7500 15.7500 17.7500 19.7500 MATLAB 的数值运算:
1、MATLAB 用十进制表示一个常数,有两种表示法:惯用记数法(如1325),科学记数法,1325记作1.325e+3, -0.0257记作-2.57e-2。
数字运算按一般手写习惯输入,加减乘除乘方运算分别用+、-、*、/、^ 表示,运算顺序与数学中的规则相同。
如:计算:2
1bt
at u u ++= 其中3010785.1-⨯=u ,a=0.03368, b=0.000221, t=20
>> u0=1.785e-3;a=0.03368;b=0.000221;t=20; % 先赋值 >> u=u0/(1+a*t+b*t^2) % 再列式 u =
0. 0010
2、数字输出格式:
MATLAB 中数值有多种显示形式,在默认情况下,数据全部为整数时,则以整型显示,若其中有实数,则结果保留小数点后4位。
数值输出格式由命令format 控制(但只影响在屏幕上的显示结果,不影响其内部储存和运算),用帮助命令(help 函数名)即help format ,可查询format 命令的用法。
数据显示格式的控制命令
如:
>> format rat % 输出的数值设置为分数形式 >> an % an 是前面跟我学1中的等差数列 an =
Columns 1 through 4
7/4 15/4 23/4 31/4 Columns 5 through 8
39/4 47/4 55/4 63/4
Columns 9 through 10 71/4 79/4 上机实践:
1、写出等差数列{ 23+n }的前15项。
2、分别输入下式,观察结果,理解数组符.*与矩阵运算*不同。
[1,2;3,4]*[1,1/2;2,3] [1,2;3,4].*[1,1/2;2,3]
3、x=-0.3时,求代数式 63224++-x x x 的值。
三、符号变量、符号表达式的建立:
1、MATLAB 中规定:在进行数值表达式计算时,式中的变量必须先赋值,否则该表达式不能计算。
如:计算222b ab a y ++=的值,a,b 必须先赋予数值才能求y 的值。
在进行符号表达式运算时,首先要定义(或者称声明)基本的符号对象(可以是常数、变量、表达式),然后用这些基本的符号对象去构成新的表达式,再进行所需的符号运算。
如:化简x x 22cos sin +,首先要声明基本变量x ,MATLAB 才能构造表达式x x 22cos sin +
如: 在2,a=2, x , x x y 32+=中,2是数值、 a=2时,a 是数值变量、x 是
符号变量、x x y 32+=是符号表达式 2、符号变量、符号表达式的建立: 定义符号变量的指令有: sym , syms 格式: sym(‘变量名’) 或sym(‘表达式’)
syms 变量名1 变量名2 变量名3……
注:sym 指令与syms 指令的区别:
1) sym 创建单个变量,syms 可创建多个变量,变量之间用空格隔开,不能用逗号分隔。
2) sym 指令中,表达式可以是数值、数值表达式、字符(串)、符号表达式、符号方程。
syms 指令不能用来建立符号方程。
如:建立下列各式 1) sinxcosx 2)
y
x xy
+2 3) 3ln ++=x x y 4) 0322=++x x 1)
>> syms x y >> sin(x)*cos(x) ans =
sin(x)*cos(x) 2)
>> 2*x*y/(x+y) ans =
2*x*y/(x+y) 3)
>> y=log(x)+sqrt(x+3) y =
log(x)+(x+3)^(1/2) 4)
>> x^2+2*x+3=0 x^2+2*x+3=0
Error: Missing operator, comma, or semicolon. % 错误:漏了操作符、逗号或
分号。
说明这种方式不能建立方程。
>> sym(' x^2+2*x+3=0') ans =
x^2+2*x+3=0
3、符号表达式计算中的算符与基本函数几乎完全和数值计算中的算符与基本函数相同。
(1) 基本运算符:运算符“+”,“-”,“*”,“\”,“/”,“^”分别实现矩阵的加、减、乘、左
除、右除、求幂运算
点运算符“.*”,“.\”,“./”,“.^”分别实现元素对元素的数组乘、左除、右除和求幂运算 (2)基本数学函数有:
三角函数与双曲函数
指数函数、对数函数
注:MATLAB 只有自然对数、以10为底的对数、以2为底的对数函数,其他对数都无定义,而且以10为底的对数、以2为底的对数函数只能做数值计算,不能做符号运算。
上机实践: 1、计算:
1)5
cos π
2) 3
-e 3)31
2)4(21
arcsin 3log 2-+++
2、输入下列数学表达式:
1)sinxcosx 2) x e y x arctan 2= 3) 3cos 1x +
4、不同数据对象之间的转换:
数值变量(double array)、符号变量(symbolic object)、字符串变量(char array)是MATLAB中三种不同的数据类型,MATLAB提供了各自的生成指令和操作指令。
数值可以直接输入,符号对象由sym或 syms命令生成,字符串用单引号‘’括起来。
不同类型的数据可以相互转换,MATLAB提供了一系列的转换指令。
四、符号型转化成数值型的精度控制
在MATLAB符号运算工具箱中有三种不同类型的算术运算
数值类型:MATLAB的浮点算术运算
有理数类型:Maple的精确符号运算
VPA类型:Maple的任意精度算术运算
这三种运算各有利弊,浮点运算最快,需要的计算机内存最小,但结果不精确,可以由format命令控制输出的数字位数;符号运算中的有理数运算,需要的计算机内存和计算时间最长,但计算结果精确。
一般符号运算的结果都是符号串,MATLAB提供了将精确的符号解转化数值解得命令,精度控制命令: digits(n) % 近似解的精度保留n位效数字
vpa(F,n) % 求符号表达式F的近似解(是数值型符号结果),近似解有
n位
有效数字
vpa(F) % 表达式F 在digits 函数设置的精度下,给出F 的数值型符号
结果
double(F) % 把符号常数转为双精度数值。
上机操作:输入并运行理解下列程序:
1、输入下列程序,在工作间管理窗口(workspace )观察显示变量的图标和变量的数据类型。
A1) a1=3/7+0.1
A2) a2=sym(‘3/7+0.1’) A3) a3=vpa(sym(3/7+0.1))
B1) A=[1,2,3;4,5,6;7,8,9] B2) B=sym(‘A ’) C1) sym s a b c x y z
C=[a,b,c;x,y,z] % 符号作为变量前,必须对符号说明
2、 求x x x f cos )(-=在π=x 处的值并按精度要求保留数字 >> x=sym('x'); % 或者写成syms x >> f=x-cos(x) f =
x-cos(x)
>> f1=subs(f,'pi',x) % 用pi 替换x 时,f 的符号型变量的值。
系统自动调整执
行f1=subs(f,x,pi)
f1 = pi+1
>> digits(10) >> vpa(f1) ans =
4.141592654 >> double(f1) ans = 4.1416
3、 x=1时,求代数式1
1
32
23+-+x x x 的值
>> syms x
>> s=(3*x^3+x^2-1)/(x^2+1); % 建立表达式
>> r=subs(s,'x',1) % s公式变量中用数值型变量1替换字符型变量’x’
r =
1.50000
>> r=subs(s,'x','1') % s公式变量中用字符型变量’1’替换字符型变量’x’
r =
(3*(1)^3+(1)^2-1)/((1)^2+1)
>> vpa(r)
ans =
1.500000000
4、x1=23;
S1=int2str(x1)
X2=-1.54;
S2=num2str(x2)
S3=’234’;
X3=str2int(s3)
小结:本章介绍了MATLAB的操作环境,MATLAB中基本的数据类型及其转换,符号变量和符号表达式的创建方法,基本运算符号和标点符号的作用,希望通过阅读程序和上机实践熟悉这些基本知识。