第2讲 Matlab 数据及其运算
第2章 MATLAB数据及其运算

③也可以采用矩阵元素的序号来引用矩阵元素。矩 阵元素按列编号,先第一列,再第二列,依次类 推。 显然,下标(subscrip)与序号(index)是一一对 应的。以m×n矩阵A为例,矩阵元素A(i,j)的序 号为 (j-1)*m+i。其相互转换关系也可利用 sub2ind和ind2sub函数求得 sub2ind(size(A),2,3) %已知行列,求序号 [c,d]=ind2sub(size(A),6) %已知序号,求行 列 还可利用reshape(A,m,n)在矩阵总元素不变的前 提下,将矩阵重排
2、赋值语句
(1) 变量=表达式 (2) 表达式 一般地,运算结果在命令窗口中显示出来。如果在语句的最 后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运 算的结果。 在MATLAB语句后面可以加上注释,注释以%开头,后面 是注释的内容。 例2.1 计算表达式的值,并将结果赋给变量x,然后显示 出结果。 在MATLAB命令窗口输入命令:
linspace(a,b,n)与a:(b-a)/(n-1):b等价。
logspace函数生成从10a到10b之间按对数等分的 n个元素的行向量,n如果省略则默认值为50。
21
2.3.3 矩阵的拆分
1. 矩阵元素
①MATLAB允许用户对一个矩阵的单个元素进行赋 值和操作。例如: A=ones(4);A(3,2)=200 只改变该元素的值,而不影响其他元素的值。 ② 如果给出的行下标或列下标大于原来矩阵的行数 和列数,则MATLAB将自动扩展原来的矩阵,并将 扩展后未赋值得矩阵元素置为0。例如: A(5,6)=10
10
2.2.3 数据的输出格式
MATLAB用十进制数表示一个常数,具体可 采用日常记数法和科学记数法两种表示方法。 在命令窗口中,默认情况下当数值为整数时, 数值计算的结果以整数显示;当数值为实数 时,以小数点后四位的精度近似显示,即以 短(short)格式显示;如果数值超过这一范 围,则以科学计数法显示结果。
第二章MATLAB数据及其运算

显然,linspace(a,b,n) =a:(b-a)/(n-1):b
17
矩阵元素的引用
方法一:通过下标(subscript)引用矩阵的元素
– 例如 A(3,2)=200
方法二:采用矩阵元素的序号(index)来引用矩阵元素。
例:利用M文件建立MYMAT矩阵
– (1) 启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵: MYMAT=[101,102,103,104,105,106,107,108,109; 201,202,203,204,205,206,207,208,209; 301,302,303,304,305,306,307,308,309];
主要内容 MATLAB 数据的特点 变量及其操作 MATLAB矩阵的表示 MATLAB数据的运算 字符串 结构数据和单元数据
1
MATLAB数据的特点
矩阵是MATLAB最基本、最重要的数据对象 – MATLAB的大部分运算或命令都是在矩阵运算的意义 下执行的
问题: – 单个数据如何用矩阵表示?x=5 – 1*1矩阵 – 向量如何用矩阵表示?a=[1,2,3] – 行向量:1*n矩阵;列向量:n * 1矩阵
A(1,2) = [ ] 出错!
A(1,2) = 0
可以
21
主要内容 MATLAB 数据的特点 变量及其操作 MATLAB矩阵的表示 MATLAB数据的运算 字符串 结构数据和单元数据
22
MATLAB数据的运算
算术运算
– 基本算术运算 » +(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)
第二讲 MATLAB基本运算

g(1,:)=[]
%删除整个一行
2022/10/31
17
2.2 矩阵基础与操作(续)
矩阵连接(由小矩阵连接成大矩阵) 例如: ag=[a ones(size(a)); zeros(size(a)) -a]
ag1=[a;10 11 12], ag2=[a [10 11 12]']
2022/10/31
2022/10/31
19
2.2.2 向量(数组)的生成
向量是仅有一行或一列的矩阵,所以矩阵的创 建方法适用于向量 a=m:p:n %以m为起点n为终点生成步
长为p的均匀等分向量 a=m:n %p=1时可省略 linspace(m,n,s) %生成始于m终于n的s个线
性等分点 linspace(m,n) % s=100时可省略
第 2 章 MATLAB基本操作
2.1 MATLAB表达式 2.2 矩阵基础与操作 2.4 逻辑和关系运算 2.5 操作和特殊字符 2.6 基本矩阵和矩阵操作 2.7 基本数学函数
2022/10/31
1
2.1.1 变量
MATLAB 语言的变量名规则
以字母开头,后面可跟字母、数字、下划线 区分字母大小写 注:不需声明,不需指明类型
2022/10/31
3
2.1.3 数值
通过菜单可设置数值的输出格式 复数的产生
c=a+i*b %产生实部为a虚部为b的复数c real(c) %求复数c的实部 imag(c) %求复数c的虚部
2022/10/31
4
2.1.4 运算符
数学运算符 关系运算符 逻辑运算符 位运算符 集合运算符
2022/10/31
x1=a+b, x2=b*a, x3=a*c, x4=a*d, x5=a.*d y1=a-10, y2=diag(a), y3=diag([10 20 30]) z1=fliplr(e), z2=flipud(e), z3=reshape(e,4,2) z4=cat(1,e,f) z5=cat(2,e,f) z6=cat(3,e,f) z7=repmat(c,2,2), z8=fix(100*(10-20*rand(2,5)))/100
MATLAB数据及运算.

2.2.2 变量的管理 1.内存变量的显示与删除 who和whos这两个命令用于显示在 MATLAB工作空间中已经驻留的变量名清 单。who命令只显示出驻留变量的名称, whos在给出变量名的同时,还给出它们的 大小、所占字节数及数据类型等信息。
clear命令用于删除MATLAB工作空间中的变量。 MATLAB工作空间窗口专门用于内存变量的管理。 在工作空间窗口中可以显示所有内存变量的属性。 当选中某些变量后,再单击Delete按钮,就能删 除这些变量。当选中某些变量后,再单击Open Selection按钮,将进入变量编辑器。通过变量编 辑器可以直接观察变量中的具体元素,也可修改 变量中的具体元素。
例2.1 计算表达式 1 7 2i 的值,并显示计 算结果。 在MATLAB命令窗口输入命令: x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) 其中pi和i都是MATLAB预先定义的变量, 分别代表代表圆周率π和虚数单位。
5 cos47
3. 预定义变量 在MATLAB工作空间中,还驻留几个由系 统本身定义的变量。例如,用pi表示圆周率 π的近似值,用i,j表示虚数单位。 预定义变量有特定的含义,在使用时,应 尽量避免对这些变量重新赋值。
第2章 MATLAB数据及其运算
2.1 MATLAB数据的特点 2.2 变量及其操作 2.3 MATLAB矩阵的表示
2.4 MATLAB数据的运算
2.5 字符串
2.6 结构数据和单元数据
2.1 MATLAB数据的特点
矩阵是MATLAB最基本、最重要的数 据对象,MATLAB的大部分运算或命令都 是在矩阵运算的意义下执行的,而且这种 运算定义在复数域上。向量和单个数据都 可以作为矩阵的特例来处理。 数值数据:双精度型(double)、单精度数 (single)、带符号整数和无符号整数。 字符数据(用char函数实现)。 结构体(Structure)和单元(Cell)数据类型。 稀疏矩阵(Sparse)。 逻辑型数据。在MATLAB中,以数值1(非 零)表示“真”,以数值0表示“假”。
第2章 MATLAB数据及其运算

第2章 MATLAB数据及其运算习题2一、选择题1.下列可作为MA TLAB合法变量名的是( D )。
A.合计B.123 C.@h D.xyz_2a 2.下列数值数据表示中错误的是( C )。
A.+10 B.1.2e-5 C.2e D.2i3.使用语句t=0:7生成的是( A )个元素的向量。
A.8 B.7 C.6 D.54.执行语句A=[1,2,3;4,5,6]后,A(3)的值是( B )。
A.1 B.2 C.3 D.4 5.已知a为3×3矩阵,则a(:,end)是指( D )。
A.所有元素B.第一行元素C.第三行元素D.第三列元素6.已知a为3×3矩阵,则运行a (1)=[]后( A )。
A.a变成行向量B.a变为2行2列C.a变为3行2列D.a变为2行3列7.在命令行窗口输入下列命令后,x的值是( B )。
>> clear>> x=i*jA.不确定B.-1 C.1D.i*j 8.fix(354/100)+mod(354,10)*10的值是( D )。
A.34 B.354 C.453D.43 9.下列语句中错误的是( B )。
A.x==y==3 B.x=y=3C.x=y==3 D.y=3,x=y10.find(1:2:20>15)的结果是( C )。
A.19 20 B.17 19C.9 10 D.8 911.输入字符串时,要用( C )将字符括起来。
A.[ ] B.{ } C.' ' D." " 12.已知s='显示"hello"',则s的元素个数是( A )。
A.9 B.11 C.7 D.1813.eval('sqrt(4)+2')的值是( B )。
A.sqrt(4)+2 B.4 C.2 D.2,214.有3×4的结构矩阵student,每个结构有name(姓名)、scores(分数)两个成员,其中scores是以1×5矩阵表示的5门课的成绩,那么要删除第4个学生的第2门课成绩,应采用的正确命令是( D )。
第2章 MATLAB数据及其运算

在一般情况下,MATLAB内部每一个数据 元素都是用双精度数来表示和存储的。
数据输出时用户可以用format命令设置或 改变数据输出格式。format命令的格式为:
format 格式符 其中格式符决定数据的输出格式
见P21表2.2
2.3 MATLAB矩阵的表示
201,202,203,204,205,206,207,208,209;
301,302,303,304,305,306,307,308,309] (2) 把输入的内容以纯文本方式存盘(设文件名
为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即
运行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。
实现矩阵的加减运算。
运算规则是:若A和B矩阵的维数相同,则 可以执行矩阵的加减运算,A和B矩阵的相应元 素相加减。
如果A与B的维数不相同,则MATLAB将给 出错误信息,提示用户两个矩阵的维数不匹配。
一个标量也可以个矩阵A和B,若A为m×n矩阵 ,B为n×p矩阵,则C=A*B为m×p矩阵。
(1) 变量=表达式 MATLAB将右边表达式的值赋给左边的变量 (2) 表达式 MATLAB将表达式的值赋给预定义变量ans
例2.1 计算表达式 5 c o s 4 7 o 的值。
1 7 2i 在MATLAB命令窗口输入命令:
x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i)
此外,还可利用一般向量和end运算符来 表示矩阵下标,从而获得子矩阵。end表 示某一维的末尾元素下标。
•A(end,:)
•A([1 4],3:end)
第2章 MATLAB数据及其运算

第2章 MATLAB数据及其运算2.1 变量和数据操作2.2 MATLAB矩阵2.3 MATLAB运算2.4 矩阵的超越函数2.5 字符串2.6 结构体和单元数据2.7 稀疏矩阵2.1 变量和数据操作MATLAB的数据类型有数值型、字符型、结构体、单元等类型。
以上各种类型的数据都以矩阵的形式存在,所以矩阵 MATLAB的基本运算对象。
MATLAB的大部分运算或命令都是在矩阵的运算的意义下执行的,而且这种运算定义在复数域上。
在一般情况下,矩阵里的每个元素必须具有相同的数据类型。
对于MATLAB最常用的双精度型实数,双精度占64位(8个字节),用 double 实现类型转换。
此外还有单精度,占32位(4个字节),用single函数实现转换。
还有带符号整数和无符号整数,其其转换函数为int8,int16,int32,int64,uint8,ruint16,uint32,uint64等,函数名最后的一个数字表示的是相应的数据类型所占的位数。
除数值型数据以外,还有字符型数据,在MATLAB中用char实现转换。
在实际应用中,还需要将不同类型的数据构成矩阵的元素。
为此,MATLAB提供了结构体(structure)和单元(cell)数据类型。
此外,还有多维矩阵和工程中使用十分广泛的稀疏矩阵。
在用MATLAB进行程序设计时,还有一类很重要的数据类型,即逻辑型数据。
在MATLAB中,没有专门的逻辑型数据,而以数值1(或非0数)表示真,以数值0表示假,这一点和C语言的规则是一样的。
在输出格式中还可以用类似于C语言的格式符。
2.1.1 变量与赋值1.变量命名在MATLAB 7.0中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
在MATLAB中,变量名区分字母的大小写。
MATLAB函数与命令必须用小写。
2.赋值语句(1) 变量=表达式(2) 表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。
第2章 MATLAB数据及其运算.

8 1 d 3 5
(2)利用空矩阵删除矩阵的元素 a=[ ] a的维数为0。 例:a( 2 , : )= [ ]; 8 1 6 得: 3 5 7 a a= 4 9 2 8 1 6 4 9 2
2.3.5
复数(Com part)和虚部(imaginary part)组 成。 虚数单位用i或j来表示。 6+5i = 6+5j
format bank format rat
2.3 MATLAB矩阵的表示
2.3.1 矩阵 MATLAB中最基本的数据结构是矩阵(matrix)。 1*1的矩阵----标量(scalar): [5] 只有一行或一列的矩阵-----向量(vector): [1 3 5 7]
2 4 6 8
2.4 Matlab数据的运算(Operators ) 运算符(Operators )
+ Addition
*
Subtraction
Multiplication
/
\
Division
Left division
^
Power
2.4.1 算术运算 (1)矩阵加减运算: 两个同维矩阵,才能进行加减运算,对应无素相加减。 一个标量与矩阵相加减时,结果为这个标量与矩阵的 每一个元素相加减。 x=[2,-1,0;3 2 -4]; y=ones(2,3); x-y=? [1,-2,-1;2,1,-5] x+1=? [3,0,1;4,3,-3]
在线性代数中,本没有矩阵除法,它是由逆 矩阵引申来的。 MATLAB中,矩阵求逆(Matrix inverse)的函 数为: Y = inv(X) 方程A*X=B的解为:X=inv(A)*B=A\B, A\B称为A左除B,左除时要求两矩阵行数相等。 方程X*A=B的解为:X=B*inv(A)=B/A, A/B称为A右除B,右除时要求两矩阵列数相等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2.2 矩阵的拆分
1.矩阵元素 通过下标引用矩阵的元素,例如,A(3, 2)=8 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就
是相应元素在内存中的排列顺序。
在 MATLAB 中,矩阵元素按列存储,先第一列,再第二列, 依次类推。例如:A=[1,2,3;4,5,6]; A(3) ans =2 注意:size(A) 函数返回包含两个元素的向量,分别是矩 阵 A 的行数和列数;相关的函数还有:length(A) 给出行 数和列数中的较大者,即 length(A)=max(size(A)).
11/49
如:C([1,4], 3:end)
ans = 3 0 1 1 0 2 0 3
(2) 利用空矩阵删除矩阵的元素 在 MATLAB 中,定义[ ]为空矩阵。给变量 X 赋空矩阵的语 句为 X=[ ]。注意,X=[ ] 与 clear X 不同,clear 是将 X 从工 作空间中删除,而空矩阵则存在于工作空间中,只是维数为
(2) 把输入的内容存盘(设文件名为 mymatrix.m)。
(3) 在MATLAB命令窗口中输入mymatrix,即运行该M文件, 就会自动建立一个名为 MYMAT 的矩阵,可供以后使用。
7/49
3.利用冒号表达式建立一个向量
冒号表达式可以产生一个行向量,一般格式是:
e1:e2:e3 其中 e1 为初始值,e2 为步长,e3 为终止值。
6/49
例2-2 利用 M 文件建立 MYMAT 矩阵。
(1) 启动有关编辑程序或 MATLAB 文本编辑器,并输入待
建矩阵: MYMAT=[101,102,103,104,105,106,107,108,109; 201,202,203,204,205,206,207,208,209; 301,302,303,304,305,306,307,308,309];
周率π和虚数单位。
3/49
2.1.2 预定义变量
在 MATLAB 工作空间中,驻留几个由系统本身定义的变量 ——预定义变量。预定义变量有特定的含义,在使用时,应 尽量避免对这些变量重新赋值。 常用的预定义变量及其含义
预定义变量 含 义 预定义变量 含 义
ans eps
pi
计算结果默认赋值变量 机器零阈值
24/49
变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体
元素。
clear命令用于删除 Workspace中的变量。 (预定义变量不能被删除) whoБайду номын сангаасwhos这两个命令用于显示在workspace中已经驻留的变量名
清单。who命令只显示出驻留变量的名称,whos在给出变量名的同时, 还给出它们的大小、所占字节数及数据类型等信息。
18/49
Ex1: 设 A 和 B 是两个同维大小的矩阵,问: a. c. A*B 和 A.*B 是否相等? A/B 和 A\B 是否相等? b. A./B 和 A.\B 是否相等? d. A/B 和 A\B 所代表的数学含义是什么? Ex2: 当 x=0.1, 0.4, 0.7, 1 时,分别求 y=sin(x)cos(x) 的值。
sqrt log log10
含义
反正切函数 平方根函数 自然对数函数 常用对数函数
acos
反余弦函数
log2
20/49
以2为底的对数函数
函数名 exp pow2 abs
含义 自然指数函数 2的幂 绝对值函数
函数 名
rem fix floor
含义 求余数(和被除数同号) 向零方向取整 不大于自变量的最大整数
4\3有相同的值,都等于0.75。 又如,设a=[10.5,25],则a/5=5\a=[2.1000 5.0000]。对于矩阵 来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的 关系。对于矩阵运算,一般 A\B≠B/A。
16/49
矩阵的乘方 一个矩阵的乘方运算可以表示成 A^x,要求 A 为方阵,x 为
(1) 变量=表达式
(2) 表达式
将表达式的值赋给左边的变量
将表达式的值赋给预定义变量ans
其中表达式是用运算符将有关运算量连接起来的式子,其结
果是一个矩阵。数是1×1矩阵。
2/49
例2-1 计算表达式
cos 1 2i 3 17 sin 78 1 2i 3 17
的值,并显示计算结果。 解:在 MATLAB 命令窗口输入命令: x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y)) 其中 pi 和 i 都是 MATLAB 的预定义变量,分别代表代表圆
标量。
2.点运算
在 MATLAB 中,有一种特殊的运算,因为其运算符是在有
关算术运算符前面加点,所以叫点运算。点运算符 .*、./、.\ 和.^。两矩阵进行点运算是指它们的对应元素进行相关运算, 要求两矩阵的维数相同。
17/49
例如: a=[1, 2, 3; 4, 5, 6; 7, 8, 9]; b=ones(3); a*b ans = 6 6 6 15 15 15 24 24 24 a.*b ans = 注意:A.*B 表示 A 和 B 单个元 1 2 3 素之间对应相乘,显然与 A*B 4 5 6 的结果不同。 7 8 9
rem与mod函数的区别:
rem(x,y)=x-y.*fix(x./y) mod(x,y) =x-y.*floor(x./y)
rem(x, y)和mod(x, y)要求x, y必须为相同大小的实矩阵或标量.
22/49
此外,常用的函数还有 reshape(A, m, n),它在矩阵总元素
保持不变的前提下,将矩阵 A 重新排成 m×n 的二维矩阵。 如前面的 A, reshape(A, 1, 6) ans = 1 4 2 5
第2讲 MATLAB 数据及其运算
2.1 变量和数据操作
2.2 MATLAB 矩阵 2.3 MATLAB 运算 2.4 字符串 2.5 特殊矩阵 2.6 矩阵结构变换
1/49
2.1 变量和数据操作
2.1.1 变量与赋值 1.变量命名 变量名是以字母开头,后接字母、数字或下划线的字符序列, 最多 63 个字符。 在 MATLAB 中,变量名区分字母大小写。 注意: MATLAB 提供的标准函数名以及命令名必须小写。 2.赋值语句
3
6
注意:在 Matlab 中,矩阵元素按列存储,reshape 函数只是 改变原矩阵的行数和列数,但并不改变原矩阵元素个数及它 的存储结构。
23/49
Ex: 1. 写出完成下列操作的命令。
a. 将矩阵 A 第 2~5 行中的第1, 3, 5列元素赋给矩阵 B.
b. 将矩阵 A 的每个元素值加 30. c. 求矩阵 A 的大小(提示:用 size 函数)。 d. 将含有 12 个元素的向量 x 转换成 3×4 矩阵。
注意,运算是在矩阵意义下进行的,单个数据的算术运算 是一种特例。
13/49
矩阵加减运算
假定有两个矩阵 A 和 B,则可以由 A+B 和 A-B 实现矩阵的
加减运算。 运算规则是:若 A 和 B 矩阵的维数相同,则可以执行矩阵的 加减运算,A 和 B 矩阵的相应元素相加减。如果 A 与 B 的维 数不相同,则MATLAB将给出错误信息,提示用户两个矩阵
19/49
3. MATLAB常用数学函数
MATLAB 提供了许多数学函数,函数的自变量规定为矩阵 变量,运算法则是将函数逐项作用于矩阵的元素,因而运 算的结果是一个与自变量同维数的矩阵。
常用数学函数及其含义
函数名 sin
cos tan asin
含义
正弦函数 余弦函数 正切函数 反正弦函数
函数名 atan
5/49
2.2 MATLAB 矩阵
2.2.1 矩阵的建立
1.直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。 具体方法如下: 将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元 素,同一行的各元素之间用空格或逗号分隔,不同行的元 素之间用分号分隔。如:a=[1,2,3;4,5,6;7,8,9] 2.利用 M 文件建立矩阵 对于比较大且复杂的矩阵,可以为它专门建立一个 M 文件 (文本文件). 下面通过一个简单例子来说明如何利用 M 文件 创建矩阵。
圆周率的近似值
4/49
inf NaN
i, j
无穷大,如1/0的结果 非数,如0/0, inf/inf
虚数单位
2.1.3 内存变量的管理
1.内存变量的删除与修改 工作空间窗口(Workspace)专门用于内存变量的管理。在Workspace窗 口中可以显示所有内存变量的属性。
当选中某些变量后,再单击Delete按钮,就能删除这些变量。 当选中某些变量后,再单击Open按钮,将进入变量编辑器。通过
8/49
4.建立大矩阵 大矩阵可由方括号中的小矩阵或向量建立起来。例如, A=[1,2,3;4,5,6;7,8,9]; B=[1,0,0;0,1,0;0,0,1]; C=[A,B;B,A] 输出结果是 C= 1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 0 0 1 2 3 0 1 0 4 5 6 0 0 1 7 8 9
angle real
imag conj mod
复数的幅角 复数的实部
复数的虚部 复数共轭运算 求余数(和除数同号)
ceil
不小于自变量的最小整数
round 四舍五入到最临近整数
sign gcd lcm
21/49
符号函数 最大公因子 最小公倍数
函数使用说明: 三角函数以弧度为单位计算。 abs函数可以求实数的绝对值、复数的模、字符串的ASCII 码值。 用于取整的函数有fix、floor、ceil、round,要注意它们之 间的区别。