MATLAB第1-2章
- 格式:ppt
- 大小:492.50 KB
- 文档页数:81


.WORD完美格式.
.专业知识编辑整理. MATLAB讲义
第一章 MATLAB系统概述
1.1 MATLAB系统概述
MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。
特点:
(1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。
(2)语句书写简单。
(3)语句功能强大。
(4)有丰富的图形功能。如plot,plot3语句等。
(5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。
(6)易扩充。
1.2 MATLAB系统组成
(1)MATLAB语言
MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。
(2)开发环境
MATLAB开发环境有一系列的工具和功能体,其中大部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。
(3)图形处理
图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。
(4)数学函数库
有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。
MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。
MATLAB2009从入门到精通2013-7-222课程主要内容•第1章MATLAB简介•第2章数值运算•第3章单元数组和结构•第4章字符串•第5章符号运算•第6章MATLAB绘图基础•第7章程序设计•第8章计算方法的MATLAB实现•第9章优化设计•第10章SIMULINK仿真初探2013-7-223第2章数值运算•本章将介绍MATLAB2009的数值计算功能,首先讲述MATLAB中的运算符,然后讲述包括MATLAB的向量、矩阵和数组,并介绍他们之间的运算。此外,还介绍了一些特殊的矩阵数据结构。另外,还对MATLAB中的多项式的运算以及多项式拟合作了详细介绍。2013-7-2242.1 MATLAB中的变量•MATLAB中的变量必须以字母打头,之后可以是任意字母、数字或下划线,变量名区分字母大小写,变量名不超过19个字符,默认变量名为ans。除此之外还包含一些特殊的变量。•who命令能够显示变量的信息;•whos命令能够显示变量的详细信息。2013-7-2252013-7-226•matlab中同样支持复数变量,表示方法为a=m+ni(j)。当n是表达式时,n与i(j)之间必须要加乘号。另外也可以用complex(x,y)来产生复数。•在循环程序段中一般不把i和j作为变量名称,以免生成数据时发生误解。2013-7-227程序实例•>> a=1+2i•a =•1.0000 + 2.0000i•>> b=1+3*i•b =•1.0000 + 3.0000i2013-7-228程序实例•>> a=sin(2)+cos(2)*i•a =•0.9093 -0.4161i•>> b=sin(2)+cos(3)i•??? b=sin(2)+cos(3)i•|•Error: Unexpected MATLAB expression.2013-7-229程序实例•>> x=sin(2);•>> y=cos(3);•>> a=complex(x,y)•a =•0.9093 -0.9900i•>> b=complex(x)•b =•0.90932013-7-2210程序实例•>> a=i+2i•a =•0 + 3.0000i•>> b=i+2*i•b =•0 + 3.0000i2013-7-2211程序实例•>> i=5;•>> a=i+2i•a =•5.0000 + 2.0000i•>> b=i+2*i•b =•152013-7-2212程序实例•>> i=5;•>> a=5+i•a =•10•>> b=5+1*i•b =•102013-7-2213程序实例•>> i=5;•>> a=5+2i•a =•5.0000 + 2.0000i•>> a=5+2*i•a =•152013-7-22142.2 MATLAB的数值运算基础2013-7-22152013-7-22162013-7-22172013-7-22182.3 数组及向量运算•由数学知识可知,数组和矩阵有着不同的概念。在MATLAB2009中,数组和矩阵在形式上有很多一致性,但是实际上它们遵循不同的运算规则。•数组运算主要是针对多个数执行同样的计算而运用的。在MATLAB中,以一种非常直观的方式来处理数组。2013-7-22192.3.1 数组构造•在MATLAB中数组表示,用户只需以左方括号开始,以空格或逗号为间隔输入元素值,最后以右方括号结束。以分号分隔不同行的元素。•>> a=[1 2 3;2 3 4]•a =•1 2 3•2 3 42013-7-22201、利用first:increment:last来创建数组•first:increment:last表示创建一个从first开始,到last结束,数据元素的增量为increment的等差数组。•冒号表示直接定义数据元素之间的增量,而不是数据元素个数。若增量为1,上面创建数组的方式可简写为:first:last。2013-7-2221程序实例•>> a=(1:2:9)•a =•1 3 5 7 9•>> b=1:2:9•b =•1 3 5 7 92013-7-22222、利用MATLAB函数linspace来创建数组•linspace通过直接定义数据元素个数,而不是数据元素之间的增量来创建数组。此函数的调用格式如下:•linspace(firstvalue,lastvalue,number)•该调用格式表示创建一个从firstvalue开始,到lastvalue结束,包含number个数据元素的等差数组。2013-7-2223程序实例•>> a=linspace(0,2,4)•a =•0 0.6667 1.3333 2.0000•>> b=linspace(0,2,5)•b =•0 0.5000 1.0000 1.5000 2.00002013-7-22243、利用logspace函数来创建对数分隔的数组•与linspace一样,logspace函数也通过直接定义数据元素个数,而不是数据元素之间的增量来创建数组。•logspace函数的调用格式为:•logspace(firstvalue,lastvalue,number)•此函数表示创建一个从10的firstvalue次幂开始,到10的lastvalue次幂结束,包含有number个数据元素的等比数组。2013-7-2225程序实例•>> a=logspace(0,2,2)•a =•1 100•>> b=logspace(0,2,3)•b =•1 10 1002013-7-22262.3.2 数组运算•数组与标量的四则运算是指数组中的每个元素与标量进行加、减、乘、除运算。•数组的指数运算为exp,以2为底的指数运算为pow2;•数组自然对数运算为log,常用对数运算为log10,以2为底的对数运算为log2,开方运算sqrt。•数组与数组之间进行运算时,每个数组必须具有相同的维数,且必须用点乘或点除。•这些运算都是数组中每个元素进行相对应的运算。2013-7-2227程序实例•>> a=[1 2]+1•a =•2 3•>> b=[1 2]-2•b =•-1 02013-7-2228程序实例•>> c=[1 2]*2•c =•2 4•>> d=[1 2].*2•d =•2 42013-7-2229程序实例•>> e=[1 2]/2•e =•0.5000 1.0000•>> f=[1 2]./2•f =•0.5000 1.00002013-7-2230程序实例•>> a=exp([1 2])•a =•2.7183 7.3891•>> b=pow2([1 2])•b =•2 42013-7-2231程序实例•>> c=log([1 10])•c =•0 2.3026•>> d=log10([1 10])•d =•0 12013-7-2232程序实例•>> e=log2([1 8])•e =•0 3•>> f=sqrt([1 9])•f =•1 32013-7-2233程序实例•>> a=[1 2]+[3 4]•a =•4 6•>> b=[1 2]-[3 4]•b =•-2 -22013-7-2234程序实例•>> c=[1 2].*[3 4]•c =•3 8•>> d=[1 2]*[3 4]•??? Error using ==> mtimes•Inner matrix dimensions must agree.2013-7-2235程序实例•>> e=[3 4]./[1 2]•e =•3 22013-7-22362.3.3 数组查询•查询x数组的第n个元素,x(n);•查询x数组的第2到4个元素,x(2:4);•查询x数组的第4到最后1个元素,x(4:end);•查询x数组的第3、2、1个元素,x(3:-1:1);•查询x数组的小于n元素,x(find(x> x=[1 2 3 4 5 6 7 8 9];•>> x(4)•ans =•4•>> x(3:5)•ans =•3 4 5•>> x(6:end)•ans =•6 7 8 92013-7-2238程序实例•>> x(5:-1:2)•ans =•5 4 3 2•>> x(find(x<4))•ans =•1 2 3•>> x([4 2 7])•ans =•4 2 72013-7-22392.3.4 数组排序•sort(x)命令将数组x中的元素按升序排列。•当x是多维数组时,命令是将x中各列元素按升序排列;•当x是一个字符型单元数组,命令是将x中的元素按ASCп码升序排列;•当x数据类型是复数,命令将按各元素的模升序排列;•y=sort(x,mode)中,mode决定排序方式,选择ascend将按升序排列,选择descend将按降序排列,y与x保持相同大小。2013-7-2240程序实例•>> x=[4 1 2;2 3 1;5 2 1];•>> a=sort(x)•a =•2 1 1•4 2 1•5 3 2•>> b=sort(x,'descend')•b =•5 3 2•4 2 1•2 1 12013-7-2241程序实例•>> x={'c','t','g','h'};•>> a=sort(x)•a = •'c' 'g' 'h' 't'•>> b=sort(x,'descend')•??? Error using ==> cell.sort at 52•DIM argument not supported for cell arrays.2013-7-2242程序实例•>> x=[3+i,2+i,4+2i,2-i];•>> a=sort(x)•a =•2.0000 -1.0000i 2.0000 + 1.0000i 3.0000 + 1.0000i 4.0000 + 2.0000i•>> b=sort(x,'descend')•b =•4.0000 + 2.0000i 3.0000 + 1.0000i 2.0000 + 1.0000i 2.0000 -1.0000i2013-7-22432.4 向量运算•向量点积运算:在高等数学中,向量的点积是指两个向量在其中某一向量方向上的投影的乘积,它通常来定义向量的长度,是个数值。c=dot(a,b)表示向量a与b的点积放在c中,a与b长度必须相同。•向量叉积运算:在高等数学中,向量的叉积是过两个向量的交点并且与这两个向量所在平面相垂直的向量,是个向量。c=cross(a,b)表示向量a与b的叉积放在c中,a与b必须是三个元素的向量,生成的仍然是一个三维的向量。2013-7-2244程序实例•>> a=[1 2 3 4];•>> b=[2 3 4 5];•>> c=dot(a,b)•c =•40•>> d=cross(a,b)•??? Error using ==> cross at 37•A and B must have at least one dimension of length 3. •>> d=cross([1 2 3],[2 1 3])•d =•3 3 -32013-7-22452.5 矩阵及其运算•MATLAB语言是由早期专门用于矩阵运算的计算机语言发展而来的,其名称就是“矩阵实验室”(Matrix Laboratory)的缩写。MATLAB语言组基本、最重要的功能就是进行实数矩阵或是复数矩阵的运算,其所有的数值功能都以矩阵为基本单元来实现。
………………………………………………最新资料推荐………………………………………
1 / 34 实验01讲评、参考答案
讲 评
未交实验报告的同学名单
数学:6人(11、12级)
信科:12-04, 12-22, 13-47
批改情况:
问题1:
不仔细,式子中出错。
问题2:
提交的过程不完整。
问题3:
使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。
问题4:
截屏窗口没有调整大小。
附参考答案:
实验01 MATLAB运算基础
(第2章 MATLAB数据及其运算) 《MATLAB软件》课内实验
王平
………………………………………………最新资料推荐………………………………………
2 / 34 一、实验目的
1. 熟悉启动和退出MATLAB的方法。
2. 熟悉MATLAB命令窗口的组成。
3. 掌握建立矩阵的方法。
4. 掌握MATLAB各种表达式的书写规则以及常用函数的使用。
二、实验内容
1. 数学表达式计算
先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
1.1 计算三角函数
0122sin851ze(注意:度要转换成弧度,e2如何给出)
示例:点击Command Window窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。
命令窗口中的执行过程:
1.2 计算自然对数
221ln(1)2zxx,其中2120.455ix(提示:clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。 应用点乘方)
命令窗口中的执行过程: ………………………………………………最新资料推荐………………………………………
3 / 34
1.3 求数学表达式的一组值
0.30.330.3sin(0.3)ln,3.0,2.9,,2.9,3.022aaeeazaa
2.1创建一个有七个元素的一维数组,并做如下处理
(1)直接寻访一维数组的第六个元素
(2)寻访一维数组的第一、三、五个元素
(3)寻访一维数组中第四个至最后一个元素
(4)寻访一维数组中大于70的元素
A=linspace(1,200,7)%创建一个有七个元素的一维数组
>>A =
Columns 1 through 3
1.0000 34.1667 67.3333
Columns 4 through 6
100.5000 133.6667 166.8333
Column 7
200.0000
(5)>> A(6)%直接寻访一维数组的第六个元素
ans =
166.8333
(6)>> A([1,3,5])%寻访一维数组的第一、三、五个元素
ans =
1.0000 67.3333 133.6667
(7)>> A(4:end)%寻访一维数组中第四个至最后一个元素
ans =
100.5000 133.6667 166.8333 200.0000
>> b=A>70%判断A中的各元素是否大于70
b =
0 0 0 1 1 1 1
>> A(b)%显示A中大于70的元素
ans =
100.5000 133.6667 166.8333 200.0000
2.3找出数组A=5311342024中所有绝对值大于3的元素
>> A=[-4,-2,0,2,4;-3,-1,1,3,5]%创建A
A =
-4 -2 0 2 4
-3 -1 1 3 5
>> b=abs(A)>3%判断A中各元素绝对值是否大于3
b =
1 0 0 0 1