第2章MATLAB语言基础
第二章 MATLAB基础

3 )向量是一个数学量,一般高级语言中也未引入, 它可视为矩阵的特例。从MATLAB的工作区可以查 看到:一个 n 维的行向量是一个 1 × n 阶的矩阵,而 一个n维的列向量则当成n×1阶的矩阵。 如A=[1 2 3 4]就是一个4维的行向量。也可看成是 一个一维数组,还要看成是一个1×4阶的矩阵。
3
数据类型转换函 数 uint8 uint16 uint32 uint64 int8 int16 int32 int64
说 明 无符号8位整数 无符号16位整数 无符号32位整数 无符号64位整数 有符号8位整数 有符号16位整数 有符号32位整数 有符号64位整数
字节数 1 2 4 8 1 2 4 8
22
【例 2.8】变量赋值 >> a=3.14 a= 3.1400 >> class(a) %函数class用来是判断变量数据类 型的 ans = double %变量a是双精度的浮点型数据
23
>> a='hello!' hello! >> class(a) ans = char
%变量a重新赋值
13
>> whos Name Size a 1x1 x 1x1 y 1x1 z 1x1
Bytes Class Attributes 16 double complex 4 int32 4 int32 8 int32 complex
14
2.2MATLAB的常量及变量
2.2.1常量 常量是程序语句中取不变值的那些量。如表达式 y=0.314*x,其中就包含一个0.314这样的数值常数,它 便是一个数值常量。而在另一表达式s='Hello'中,单引 号内的英文字符串“Hello”则是一个字符串常量。
第2章 MATLAB的基础知识

a=[1 2 1;2 2 1;2 1 2]; b=[1;2;3]; a/b %矩阵右除
运行程序,得到结果:
??? Error using ==> mrdivide Matrix dimensions must agree.
重新输入语句
a\b
%矩阵左除 ans = 1.0000 -0.3333 0.6667
运行程序,得到结果:
c= 0 0 1 1 1 0
说明 对于复数运算,“= =”与“~ =”运算,既比较实部, 又比较虚部。而其他运算仅比较实部。关系运算同样也可用于 常量与矩阵的比较,在这种情况下,该常量与矩阵的每一个元 素进行比较,其结果是一个与矩阵同维数的0、1矩阵。
逻辑操作符
逻辑操作符 说 明 相对应函数
-0.1667 0 0
(3)矩阵特征值运算
矩阵条件数cond( ) 矩阵的秩rank() 矩阵特征值eig ( )
矩阵范数norm( ) 矩阵的迹trace ( ) 矩阵奇异值svd ( )
例2-7 分别计算矩阵a的有关特征参数。输入以下 MATLAB语句
a=[1 2 3;4 5 6;7 8 0] [cond(a),norm(a),rank(a)]
2.MATLAB工作环境
图形窗口“Figure”
M文件窗口
3.MATLAB的M文件
所谓M文件,就是用户把要实现的命令写在一个 以.m为扩展名的文件中
M文件有两种格式(统称为M文件) 函数式M文件 程序式M文件 程序式M文件用于把很多需要在命令窗口输入的命 令放在一起,就是命令的简单叠加 函数式M文件用于把重复的程序段封装成函数供用 户调用。
&
|
逻辑与
逻辑或
and(a,b)
Matlab工程应用基础_2_2Matlab语言程序设计

1、 Matlab数据类型 变量和常量 数字变量的格式 字符串 单元型变量 结构型变量 矩阵、向量 多项式
a) 变量和常量 变量(包括函数)的命名规则:由英文字母、数字和下划线 混合组成,不得包含空格和标点 ;第一个字符必须是英 文字母,最多包括31个字符; 对字母的大小写敏感。 局部变量和全局变量 永久变量(常量) 只能在某一函数体内使用,而不能从其他函数和 Matlab 工作空间访问的变量,就是局部变量。 在几个函数及M atlab函数中都能使用的变量就是全局变 量。 (全局变量名应尽可能大写,并由globe声明)
第2章 Matlab语言程序设计
关系操作符
逻辑操作符
第2章 Matlab语言程序设计
MATLAB 的关系操作符运算法则: 当两个变量是标量 a 和 b 时 ◆若 a、b 之间关系成立,则关系运算结果为 1; ◆若 a、b 之间关系不成立,则关系运算结果为 0; 当两个维数相同的矩阵 A 和 B 比较时,矩阵 A、B 比 较的是相同位置的元素,按标量的运算规则逐个进行。 关系运算的结果是一个和 A维数相同的矩阵,它的元 素由 0 和 1 组成。 当一个矩阵A 和一个标量 b 比较时,把标量 b 和矩阵 A 的每一个元素按标量关系运算规则逐个比较。关系 运算的结果是一个和数组 A维数相同的矩阵,它是由 0 和 1 组成。 优先级 由高到低为算术运算、关系运算和逻辑运算。
ans = -0.9918 >> y=sin(5*t+6) y= -0.9918
第2章 Matlab语言程序设计
表达式由变量名、运算符、数字和函数名组成。 表达式将按常规的优先纽从左至右执行运算; 优先级的规定是指数运算级别最高,乘除运算次之; 括号可以改变运算顺序; 书写表达式时,赋值符“=”和运算符两侧允许有 空格,以增加可读性。但在复数或符号表达式中要 尽量避免空格,以防出错; 表达式的末尾加 “;” 时,Matlab系统只把数值赋 给变量, 不显示计算结果;不加“;”时, Matlab 系统将会在该条语句的下面直接显示运算结果。
第二章_MATLAB语言基础_第1节-赵亦欣

第2章 MATLAB语言基础
【例2.8】 表达式语句。 >> sqrt(2)*exp(-1*3) ans = 0.0704 >> 8*3+6/4 ans = 25.5000
表达式语句 运算结果 执行下一条 表达式语句 后,结果将 被刷新
第2章 MATLAB语言基础
第2章 MATLAB语言基础
2.1 基础知识
2.1.3 变量和语句
变量名区分字母大小写;不超过31个字 符,31个以后的字符将被忽略,字符之间不 能有空格;必须以字母打头,之后可以是任意 字母、数字或下画线;不允许使用标点符号。
第2章 MATLAB语言基础
MATLAB的一条命令行就是一条语句,
格式与书写数学表达式相近。 在命令窗输入语句,该语句可被解释运 行并给出运行结果。
第2章 MATLAB语言基础
(1)永久变量不能用clear命令清除; (2)永久变量不响应Who, Whos命令; (3)永久变量可以等于表2-1中的值; (4)被赋值的永久变量,在clear命令清除内 存或命令窗关闭再打开后,将被设为默认值;
(5)允许被0除。
第2章 MATLAB语言基础
2.1 基础知识
第2章 MATLAB语言基础
【例2.11】复数矩阵的生成及运算。 >> A=[1 2; 3 4]+[5 6; 7 8]*I % 复数矩阵的输入。 分别由实部矩阵和虚部矩阵组合而成 A= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i >> B=[1+2i 3+4i; 5+6i 7+8i] % 复数矩阵的输入。 直接由复数构成矩阵 B= 1.0000 + 2.0000i 3.0000 + 4.0000i 5.0000 + 6.0000i 7.0000 + 8.0000i >> C=A*B % 复数矩阵相乘。 复数矩阵乘法, 1.0e+002表 示标量100,矩阵运算中,存在直 C= 角坐标和极坐标之间的转换 1.0e+002 * -0.3500 + 0.4900i -0.5100 + 0.7700i -0.3900 + 0.7700i -0.5500 + 1.2100i
控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础

控制系统仿真与CAD 国家级精品课程
2014-12-31
24/70 24
2.4.4 匿名函数与inline函数
不用编写*.m,定义函数的方法
可以动态地定义函数,在科学运算中有用 二者功能重复,后者远差于前者,不再使用
匿名函数: 举例
控制系统仿真与CAD 国家级精品课程
2014-12-31
控制系统仿真与CAD 国家级精品课程
2014-12-31
3/70 3
2.1.1 常量与变量
常量(保留字符串)
eps: 机器的浮点运算误差限,默认值 i和j:虚数单位,-1的平方根,i=sqrt(-1) Inf: 无穷大量,-Inf为负无穷大 NaN:不定式(Not a Number) pi:圆周率p的双精度浮点表示
25/70 25
2.5 二维图形绘制
可以绘制出各种二维曲线 可以由数据绘图,也可以由格式绘图 本节主要内容
基本二维图形绘制语句 带有其他选项的绘图函数 二维曲线的标注方法 在MATLAB图形上添加文字标注 特殊图形绘制函数及举例 隐函数的曲线绘制
控制系统仿真与CAD 国家级精品课程
符号型数据结构
syms 命令申明符号变量
控制系统仿真与CAD 国家级精品课程
2014-12-31
5/70 5
vpa(A) 显示符号变量
例2-1 显示e的前300位 其他数据结构
int8() 、int16() 、int32() 、uint16() 和 uint32() 字符串型数据:MATLAB字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象
第二章 MATLAB语言的使用与程序设计

命令历史窗口:显示已执行过的命令。在窗口的某一命令上单击鼠标 右键,会弹出菜单,对所选命令进行操作。
当前路径窗口:提供了当前路径文件的操作
演示
MATLAB的搜索路径
搜索路径是一系列文件路径的组合。当程序和命令执行 时, MATLAB 在搜索路径中查找程序或命令运行所需的函数文 件。 MATLAB 在执行搜索时按照规定的顺序。如:在命令窗口 中输入example,MATLAB将按下面的步骤来处理: 1.检查example是不是一个变量,如果是,则返回变量的值;
本章重点:
MATLAB工作环境掌握 主要文件类型及常用命令
矩阵、变量、表达式、常用函数
MATLAB语言的基本语句结构及程序调试方法
一、MATLAB系统简介
MATLAB的主要组成部分
1.MATLAB语言体系:MATLAB 语言是一种以矩阵运算为基础的高级 语言,具有条件控制、函数调用、数据结构、输入输出及面向对象等 程序语言特征,可以进行程序设计。
6 )对矩阵的特殊操作: rot90(a) 将 a 矩阵旋转 90 度、 fliplr(a) 将 a 矩阵的列反序、 flipud(a) 将 a 矩阵的行反序、diag(a) 将向量 a 构 成对角阵( 元素放在主对角线上 )---a 为向量、triu(a) 提取矩阵的上 三角部分、reshape改变矩阵的阶数,按列的顺序重排。
逻辑运算符: 在MATLAB中,逻辑运算符有3种。 & 逻辑与。当运算双方对应元素都为非零时; 结果为1,否则,结果为0。
| 逻辑或。当运算双方对应元素有一个为非零 时;结果为1,否则,结果为0。
~ 结果为0。 逻辑非。当元素的值为 0 时,结果为 1 ,否则,
例: a=[1 0 3;0 –1 6] , b=[-1 0 0;0 5 0.3] ,计算两矩
第二章 MATLAB语言基础(10)

第二章 MATLAB语言基础教学重点:矩阵运算、MATLAB程序设计教学难点:基本算术运算与点运算、switch语句、try语句、for语句MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。
矩阵是MATLAB最基本、最重要的数据对象,MA TLAB的大部分运算或命令都是在矩阵运算的意义下执行的,而且这种运算定义在复数域上。
一、MATLAB编程基础1.变量MATLAB对变量名称有以下三个规定:●变量名称开头必须是英文字母,后面可以接英文字母、下划线、数字●区分大小写●变量名称长度应不超过31个字符2.预定义变量在MA TLAB中,有一些预先定义好的保留数值和函数供用户使用,这些特殊函数和数3.基本赋值语句MATLAB最基本的赋值语句结构为:变量名列表=表达式表达式可以用分号结束,也可以用逗号或换行号结束,但它们的含义不同。
如果用分号结束,则程序运行时等式左边的变量的运行结果将不在屏幕上显示出来,否则将把左边变量的运行结果全部显示出来。
4.工作空间的管理1)who和whos可以用who或whos命令来查看程序中使用的变量表,who命令只返回一个简单的变量列表,whos命令返回全部变量的变量名(Name)、大小(Size)、元素数(Element)、字节数(Byte)、表现密度(Density)、有无复数(Complex),除了对单个变量给出相应的信息外,还将给出整个变量空间的占用情况。
2)clear可以调用clear命令来删除其中的一些不再使用的变量,这样可以使得整个工作空间更简洁。
3)exist如果用户想查询在当前的工作空间中是否存在一个变量时,可以使用exist命令来实现,改函数的调用格式为:i=exist(‘A’);返回值i表示变量名存在的形式,含义如下:i=1:表示在当前工作空间中存在一个变量名为A的矩阵i=2:表示在MA TLAB的工作路径下存在一个名为A.m的文件i=3:表示在MA TLAB的工作路径下存在一个名为A.mex的文件i=4:表示存在一个编译号的名为A.m的SIMULINK文件i=5:表示存在一个MATLAB函数A( )i=0:表示不存在和A有关的变量和文件4)size( )、length( )、ndims( )size( )返回矩阵的行数和列数length( )返回矩阵行数和列数的最大值ndims( )给出矩阵的维数5.字符串在MA TLAB中,字符串是用单撇号括起来的字符序列。
第2章_MATLAB的基本操作

浮点数包括单精度(4个字节)和双精度(8个字 节),默认为双精度。
single :将其它类型的数据转换成单精度浮点数。 double :将其它类型的数据转换成双精度浮点数。
浮点数与其它类型数据运算表
operand single double int/uint char logical X single single single single single double single double int/uint double double
MATLAB数据类型
例:
MATLAB数据类型
细胞变量的定义
可以通过以下两种方式定义一个细胞变量:
用赋值语句直接定义; 由 cell 函数预先分配存储空间,然后对细
胞的每个元素逐个赋值。
MATLAB数据类型
MATLAB数据类型
细胞变量可以嵌套定义
MATLAB数据类型
细胞变量的元素的引用
MATLAB数据类型
str2num:将字符数组转换为
数值数组
abs,double,char按照 ASCII码 转换; num2str,int2str,mat2str,str2num 直接转换。
MATLAB数据类型
字符串的连接
水平连接:strcat 或 中括号中用逗号连接
在中括号中直接水平连 接,结果中包括原字符 串结尾处的空格。 用 strcat 连接,结果 中忽略原字符串结尾处 的空格。
把数字直接转换为字符 串,每个数字为一个独 立的字符串。
把数字取整后转换为字 符串,注意和 num2str 的区别。
把矩阵转换为一个字符 串,方括号、分号和空 格都是其元素。
MATLAB数据类型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4.1 矩阵创建
函数
2.4 矩阵及其运算
语法 说明 生成n阶hadamard矩阵,其中n满足 rem(n,4)=0。 生成第一行和第一列都为c,或第一列 为c和最后一行为r的hankel矩阵
与创建二维数组一样,矩阵创建的主要方法有:直接输入法、函数法、变换 法。
hadamard
hankel
hadamard(n)
2.3.5 数组的逻辑运算
逻辑 运算 相应的 逻辑运 算函数 逻辑运算符 说明
&
与 and && | 或 or || ~
能实现所有的逻 辑与运算
只能用于标量 之间 能实现所有的逻 辑或运算 只能用于标 量之间 实现所有的非运算
数组对应元素或两标量同为非零时 返回1;否则返回0
数组对应元素或两标量同为零时返 回0;否则返回1 数组元素或标量为非零时返回0,否 则返回1
2.3.4 数组的关系运算
是按元素来比较相同规格数组(行、列数相同)或比较数组 与标量。
运算符 < 函数 lt 说明 小于 运算符 >= 函数 ge 说明 大于或等于
<=
>
le
gt
小于或等于
大于
==
~=
eq
ne
等于
不等于
例: 数组的关系运算 >>A=[1 3;2 0];B=[4 2;2 -1];C=(A>B),D=le(A,B),E=(A~=B) C= 0 1 0 1 D= 1 0 1 0 E= 1 1 0 1
第2章 MATLAB语言基础
• • • • • • 2.1变量及其赋值 2.2 向量及其运算 2.3 数组及其运算 2.4 矩阵及其运算 2.5 函数与表达式 2.6 MATLAB数据类型
2.1变量及其赋值
2.1.1 变量命名规则
• 变量名只能由字母、数字和下划线组成,且必须以 字母开头; • 变量名区分字母的大小写; • 变量名不能超过最大长度限制; • 关键字不能作为变量名,如for、end和if等; 注意:存变量命名时应尽量避开MATLAB中预定义的 变量。
Realmin或realmin
pi
最小正实数
圆周率
2.1变量及其赋值
2.1.2 变量赋值
• 赋值语句的一般形式为:变量=数据(或表达式); 例: >>a=1,b=2,c=a^2+3*b+1 %命令间用逗号间隔,回车后命令窗口显示为: a=1 b=2 c=8 >>a=1;b=2; c=a^2+3*b+1 %前两条语句加上分号,回车后命令窗口显示为: c=8 %加了分号的语句的运行结果不再显示在命令窗口中 >>a %但可以通过直接输入变量名查看变量的取值 a=1 >>a=4 a=4 %当变量再次被赋值时,新值代替旧值 注意:标点符号必须在英文状态下输入 。
• 向量的混合积
– 运算格式为dot(A,cross(B,C)):是指先叉乘后再点乘,:
例: 向量的运算 >>a=[1 2 3];b=4:6;c=linspace(7,10,4);d=[1 4 6]; >>d=a+b, e=a-c d= 5 7 9 ??? Error using ==> minus Matrix dimensions must agree. % 表明e=a-c运算中a与c的维数不同,使运算出错 >>f=a+1,g=b-1 f= 2 3 4 g= 3 4 5 >> h=3*a, k=4*b' h= 3 6 9 k= 16 20 24 >>dot(a,b) ;相当于a*b' ans = 32 >> cross(a,b) ans = -3 6 -3 >> dot(a,cross(b,d)) ans = 0
表2-1 MATLAB预定义变量
预定义变量 ans eps flops Inf或inf i或j NaN或nan nargin nargout Realmax或 realmax 变量的含义 运算结果的缺省变量名 计算机中的最小数。当某量的绝对值小于eps时,可认为此 量为零 浮点运算数 正无穷大,由零做除数所引入的常量,如1/0 虚数单位i=j=(-1)1/2 表示非数值,如0/0,inf/inf,0*inf,inf-inf等 函数的输入变量数目 函数的输出变量数目 最大正实数
非
not
异或
xor
没有相应的运算符
数组对应元素或两标量只有一个非 零时返回1,否gt;A=[1 0 0;2 3 4];B=[0 1 3;0 1 2];C=A&B,D=or(A,B),E=~(A) C= 0 0 0 0 1 1 D= 1 1 1 1 1 1 E= 0 1 1 0 0 0
组合法 :
一个向量和数值或另一向量(同为行或列向量)组合在一起, 构成一个新的向量 。 例2-4 >>a=[1 2 3 4];b=[10 11];c=[a 13 b zeros(1,2)] c= 1 2 3 4 13 10 11 0 0
• 利用linspace()函数或logspace( )函数生成向量法:
函数法
函数 eye 语法 eye(n); eye(m,n); 说明 生成单位数组
ones
rand randn
ones(n); ones(m,n);
rand(n); rand(m,n); randn(n); randn(m,n);
生成元素全为1的数组
生成均匀分布的随机数组 生成正态分布的随机数组
zeros
例: 直接输入法创建数组
>> A=[1 2 3 4;5 6 7 8],B=[1 2+i 3i 4],C=[9:12;1:2:5 21],D=A+i*C A= 1 2 3 4 5 6 7 8 B= 1.0000 2.0000 + 1.0000i 0 + 3.0000i 4.0000 C= 9 10 11 12 1 3 5 21 D= 1.0000 + 9.0000i 2.0000 +10.0000i 3.0000 +11.0000i 4.0000 +12.0000i 5.0000 + 1.0000i 6.0000 + 3.0000i 7.0000 + 5.0000i 8.0000 +21.0000i
2.3.2 数组的寻址 数组的寻址----找出需要被操作的元素。对数组 A寻址的指令如下:
• • • • A(r,c):表示数组A的第r行第c列的元素。 A(r,:):表示数组A的第r行元素。 A(:,c):表示数组A的第c列的元素。 A(s):把数组A的所有列按先左后右的次序,首尾连 接成一个序列后,由上到下的第s个元素。 (MATLAB是按照列的先后顺序存放的。)
2.3.3 数组的代数运算
主要包括加(+)、减(-)、乘(.*)、除(./和.\)、幂运算(.^)、指数运算(exp)、对数运
算(log)和开方运算(sqrt)等。
例:数组的代数运算 >>A=[1 2 3;4 5 6];B=[1 3 4;2 5 6]; >>E=A.*B,F=A./B,H=A.^2,I=exp(A), K=sqrt(A) E= 1 6 12 8 25 36 F= 1.0000 0.6667 0.7500 2.0000 1.0000 1.0000 H= 1 4 9 16 25 36 I= 2.7183 7.3891 20.0855 54.5982 148.4132 403.4288 K= 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495
2.2.2向量的运算 • 同维向量的加减 • 数与向量的加减 • 数乘向量 • 向量的点积
– 点积运算函数dot(A,B) :维数相同的向量A和B各对应位 置上元素相乘后的和,其结果是一个标量。
• 向量的叉积
– 叉积运算函数cross(A,B)。结果是一个过两向量交点且垂 直于两个向量所在平面的向量。 – 即若向量A=(a1,a2,a3),向量B=(b1,b2,b3), (A×B)=(a2b3-b2a3,a3b1-a1b3,a1b2-a2b1)。叉积运算 要求A和B必须是三元素的向量。
– linspace(a,b,n):产生首尾元素分别为a和b,长度为n的等 差行向量。当n省略时,默认n=100。 – logspace(a,b,n):产生首尾元素分别为10a和10b,长度为 n的对数等分行向量。当n省略时,默认n=50;当b=pi时, 在[10a pi]区间产生长度为n的对数等分行向量。
pascal
toeplitz
生成满足指定要求的n阶pascal矩阵
生成第一行和第一列都是r,或第一列 为c和第一行为r的toeplitz矩阵
wilkinson
wilkinson(n)
生成n阶J. H. Wilkinson's特征值测试 矩阵
4.2 矩阵的运算 • 矩阵的加、减:相同行数和列数的两矩阵对应元素间进
冒号表达式法 :
– 一般格式为:向量名=a1:step:a2。其中a1为向量的第一 个元素,a2为最后一个元素,step为变化步长,省略时, 默认为1。
例2-3 >>a=[1:2:10],b=[1:5] a= 1 3 5 7 9 %注意:也就是说用冒号表达式法生成向量时,最 后一个元素不一定是a2 b= 1 2 3 4 5
生成全零数组
按指定维方向串接数组 求对角线元素或对角矩阵 以数组水平中线为对称轴,交换上下对 称位置上的数组元素 以数组垂直中线为对称轴,交换左右对 称位置上的数组元素 按指定维上的数目复制数组 按指定的行和列重新排列数组 逆时针旋转数组90度的整数倍 提取数组下三角部分,生成下三角矩阵 提取数组上三角部分,生成上三角矩阵