第2-3章 MATLAB矩阵及其运算
MATLAB矩阵操作教程

MATLAB矩阵操作教程第一章:MATLAB中的矩阵介绍1.1 什么是矩阵矩阵是由数个行和列组成的矩形数组,可以用于表示数据和进行数值计算。
1.2 创建矩阵在MATLAB中,可以使用矩阵生成算符进行矩阵的创建,如使用方括号,分号和逗号分隔元素。
1.3 矩阵索引MATLAB中的矩阵索引从1开始,可以使用括号和索引访问矩阵中的元素。
1.4 矩阵运算MATLAB提供了丰富的矩阵运算函数,如加法、减法、乘法、除法等,可用于执行矩阵操作。
第二章:MATLAB矩阵的基本操作2.1 矩阵转置可以使用单引号将矩阵转置,即将矩阵的行变为列,列变为行。
使用方括号和逗号将矩阵进行水平或垂直合并。
2.3 矩阵切片可以使用冒号运算符和索引,对矩阵进行切片操作,提取出所需的子矩阵。
2.4 矩阵重塑使用reshape函数可以改变矩阵的形状,重新组织矩阵元素的排列顺序。
2.5 矩阵求逆使用inv函数求矩阵的逆矩阵,如果矩阵不可逆,则会报错。
第三章:MATLAB矩阵的高级操作3.1 特征值与特征向量使用eig函数可以计算矩阵的特征值和特征向量,以进行其他相关计算。
3.2 矩阵分解MATLAB中提供了多种矩阵分解函数,如LU分解、QR 分解、奇异值分解等,可用于求解线性方程组、矩阵逆等问题。
使用左除运算符(\)和右除运算符(/)可以求解形如AX=B的线性方程组。
3.4 矩阵迭代可以使用循环结构和条件判断,在MATLAB中实现矩阵的迭代计算。
第四章:MATLAB中的矩阵应用4.1 数据处理与分析使用MATLAB可以进行各种数据处理和分析,如平均值计算、数据拟合、统计分析等。
4.2 信号处理利用MATLAB中的矩阵操作函数,可以进行信号滤波、频谱分析、波形生成等信号处理操作。
4.3 图像处理MATLAB中的矩阵操作函数可用于图像的载入、处理、显示和保存,如图像滤波、边缘检测、图像分割等。
4.4 机器学习利用MATLAB中的矩阵操作与机器学习算法相结合,可以进行分类、回归、聚类等机器学习任务。
第2章 MATLAB矩阵及其运算(新)

NaN或nan i或j
不定数 复数单位
realmax bitmax
最大的正浮点数 最大的正整数
(2)变量
变量是MATLAB 7的基本元素之一,MATLAB 7 语言不要求对所使用的变量进行事先说明,而且 它也不需要指定变量的类型,系统会根据该变量 被赋予的值或对该变量所进行的操作来自动确定 变量的类型。 变量名长度不超过31位,超过31位的字符系统 将忽略不计 变量名区分大小写 变量名必须以字母开头,变量名中可以包含字母、 数字或下划线,但不允许出现标点符号
数值运算符号
符 号 功 能 实 例 + * /、\ ^ 加法 减法 乘法 除法 乘方 1+2 1-2 1*2 1/2或是2\1 2^3
(2)常用标点符号
标 点 符 号
; , : () [] {}
定
义
. … ‘ = ! %
标 点 符 号
定
义
区分行,取消运行显示等 区分列,函数参数分隔符等 在数组中应用较多 指定运算优先级等 矩阵定义的标志等 用于构成单元数组等
谢 谢
2.2 变量和数据操作
2.2.1 变量与赋值 1.变量命名 在MATLAB 中,变量名是以字母开头,后接 字母、数字或下划线的字符序列,最多31个 字符。在MATLAB中,变量名区分字母的大 小写。
2.赋值语句 (1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接起 来的式子,其结果是一个矩阵。
2.2.5 数据的输出格式 MATLAB用十进制数表示一个常数,具体 可采用日常记数法和科学记数法两种表示方 法。 在一般情况下,MATLAB内部每一个数据 元素都是用双精度数来表示和存储的。数据 输出时用户可以用format命令设置或改变数 据输出格式。format命令的格式为: format 格式符 其中格式符决定数据的输出格式
第2章MATLAB矩阵及其运算

·30·
第 2 章 MATLAB 矩阵及其运算
的求解方法时,因不完善的设计导致的内存溢出。在此,主要针对第二种情况进行分析并 给出相应的解决方案。
1.变量名区分大小写 变量名的定义必须符合以下条件: 必须以字母开头。 由字母、数字、下划线组成。 最长为 31 个字符。 一些用户不可以清除的变量,如 ans、eps、pi、Inf、NaN 等。 【例 2-1】 变量定义举例如下:
A a king
在 MATLAB 中的变量不需要事先定义,在遇见新的变量名时,MATLAB 会自动建立 并且为其分配存储空间。如果遇见已经出现的变量,会重新为其分配空间。
a = complex(2,9) b = real(a) c = imag(a)
MATLAB 运行结果如下:
a= 2.0000 + 9.0000i
b= 2
c= 9
3.除了可以把数值直接赋给变量,还可以将表达式、矩阵赋给变量
对于矩阵的讲解,会在后面详细讲解。 【例 2-4】 变量的赋值举例如下:
a=[1 4 7] B=abs(6+13i) C=[]
(4)不同数据结构的内存。 在 MATLAB 中,8 位、16 位、32 位、64 位的有符号整型或无符号整型分别占用 1、2、4、8 字节空间,单精度、双精度浮点数分别占用 4、8 字节空间。 在 MATLAB 中,复数的存储比较特殊。复数的实部和虚部在内存中是分开存放的, 当在程序中修改复数的实部或虚部时,会在修改数据的同时复制复数的实部和虚部。 在 MATLAB 中,当数组的元素绝大部分为 0 时,MATLAB 一般默认采用稀疏矩 阵进行存储以节省空间。
a=[1,2,3,4,5,6,7,8,9,10]
matlab程序设计矩阵及其运算

matlab程序设计矩阵及其运算1. 矩阵的定义和表示在matlab中,矩阵是一种常用的数据结构,用于存储和处理多维数据。
矩阵由行和列组成,每个元素都有一个唯一的位置。
在matlab中,可以通过方括号[ ]来定义和表示矩阵。
以下是一些常见的矩阵定义:一维行向量:matlabA = [1 2 3 4 5];一维列向量:matlabB = [1; 2; 3; 4; 5];二维矩阵:matlabC = [1 2 3; 4 5 6; 7 8 9];可以使用size()函数获取矩阵的维度信息,例如:matlab[m, n] = size(C); % m为行数,n为列数2. 矩阵的运算matlab中的矩阵可以进行各种运算,包括基本的加减乘除运算、转置运算、矩阵乘法运算等。
2.1 加法和减法矩阵的加法和减法可以使用+和-运算符进行,例如:matlabA = [1 2 3; 4 5 6; 7 8 9];B = [9 8 7; 6 5 4; 3 2 1];C = A + B; % 矩阵的加法D = A B; % 矩阵的减法2.2 矩阵乘法矩阵乘法在matlab中使用运算符进行,例如:matlabA = [1 2 3; 4 5 6; 7 8 9];B = [9 8 7; 6 5 4; 3 2 1];C = A B; % 矩阵的乘法2.3 转置运算矩阵的转置表示将矩阵的行和列互换,使用'运算符进行,例如:matlabA = [1 2 3; 4 5 6; 7 8 9];B = A'; % A的转置矩阵2.4 矩阵的逆运算矩阵的逆运算是指对于一个可逆矩阵A,存在一个矩阵B,使得A B = B A = I,其中I为单位矩阵。
在matlab中,可以使用inv()函数来求一个矩阵的逆矩阵,例如:matlabA = [1 2; 3 4];B = inv(A); % A的逆矩阵需要注意的是,不是所有的矩阵都有逆矩阵,对于不可逆的矩阵,inv()函数会报错。
第2章 matlab矩阵及其运算

第2章 MATLAB 矩阵及其运算
2.1.2 MATLAB常用数学函数
MATLAB提供了许多数学函数,函
数的自变量规定为矩阵变量,运算法
则是将函数逐项作用于矩阵的元素上, 因而运算的结果是一个与自变量同维
数的矩阵。
11/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
1. 三角函数 • sin 正弦函数 • asin 反正弦函数 • cos 余弦函数 • tan 正切函数 • cot 余切函数 • sec 正割函数 • csc 余割函数
在MATLAB命令口输入命令:
x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y))-sin(78*pi/180))/(x+abs(y))
其中pi和i都是MATLAB预先定义的变量,分别
代表代表圆周率π和虚数单位。 输出结果是:
z =
-0.3488 + 0.3286i
10/128 MALAB 7.X程序设计
18/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
rem与mod的区别
rem(x,y)=x-y.*fix(x./y)
mod(x,y)=x-y.*floor(x./y)
eg: >>x=5;y=3; >>y1=rem(x,y),y2=mod(x,y) >> x=-5;y=3; >>y1=rem(x,y),y2=mod(x,y)
%绝对值 %取复数虚部 %取复数实部 %复数共轭
16/128 MALAB 7.X程序设计
第2章 MATLAB 矩阵及其运算
4. 取整函数 fix(x) 朝零方向取整 floor(x) 朝负无穷大方向取整 ceil(x) 朝正无穷大方向取整 round(x)四舍五入 mod(x,y) rem(x,y)取x/y的余数要求x,y 必须为相同大小的实矩阵或为标量。 eg: x=5.3 x=-5.3 -5.3 -5 0 5 5.3
第2-3章 MATLAB矩阵及其运算

2.log 功能:自然对数。 格式: Y=log(X) 说明: Y=log(X)可得到X的自然对数(以 e=2.7183为底)
3.log10 功能:常用对数。 格式: Y=log10(X) 说明: 类似于log函数,Y=log10(X)可得到X的 常用对数(以10为底),这里不再赘述。
4.log2 功能:以2为底的对数和将浮点数分解成 指数和尾数部分。
一些有用变量长久地保留下来,扩展名是.mat。 MAT文件的生成和装入由save和load命令来完成。 常用格式为: save 文件名 [变量名表] [-append][-ascii]
load 文件名 [变量名表] [-ascii]
其中,文件名可以带路径,但不需带扩展名 .mat , 命令隐含一定对 .mat 文件进行操作。变量名表中
2.3.3 矩阵的拆分
1.矩阵元素的引用方式
通过下标引用矩阵的元素,例如 A(3,2)=200 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序
号就是相应元素在内存中的排列顺序。在MATLAB中,
注意:矩阵元素按列存储,先第一列,再第二列,依
次类推。
例如 A=[1,2,3;4,5,6];
A(3) ans = 2 显然,序号(Index)与下标(Subscript )是一一对应的,
三角阵三角阵又进一步分为上三角阵和下三角阵所谓上三角阵即矩阵的对角线以下的元素全为0的一种矩阵而下三角阵则是对角线以上的元素全为0的一种矩阵
第2章 MATLAB矩阵及其运算
MATLAB变量和数据操作 MATLAB矩阵及其操作 MATLAB运算与矩阵分析 字符串、结构数据和单元数据 MATLAB稀疏矩阵及其操作
预定义变量有特定的含义,在使用时,应尽量避
第3章 Matlab中的矩阵及其运算

第3章Matlab中的矩阵及其运算矩阵是数学中一个十分重要的概念,其应用能够十分广泛,Matlab中最基本最重要的功能就是进行矩阵运算,其所有数值功能都已矩阵为基本单元来实现,掌握Matlab中的矩阵运算是十分重要的。
关键词:Matlab 矩阵特殊矩阵一、矩阵的生成1、矩阵生成有多种方式,通常使用的有四种:(1)在命令窗口中直接输入矩阵(2)通过语句和函数产生矩阵(3)在M文件中建立矩阵(4)从外部的数据文件中导入矩阵其中第一种是最简单常用的创建数值矩阵的方法,较适合创建较小的简单矩阵。
把矩阵的元素直接排列到方括号中,每行内元素用空格或逗号相隔,行与行之间的内容用分号相隔。
如:matrix=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4] %逗号形式相隔matrix =1 1 1 12 2 2 23 3 3 34 4 4 4matrix=[1 1 1 1;2 2 2 2 ;3 3 3 3;4 4 4 4] %采用空格形式相隔matrix =1 1 1 12 2 2 23 3 3 34 4 4 42、特殊矩阵的生成1、零矩阵和全1矩阵零矩阵指各个元素都为零的矩阵。
(1)A=zeros(M,N)命令中,A为要生成的零矩阵,M和N分别为生成矩阵的行和列。
(2)若存在已知矩阵B,要生成与B维数相同的矩阵,可以使用命令A=zeros(size(B))。
(3)要生成方阵时,可使用命令A=zeros(N)来生成N阶方针。
全1矩阵用ones函数实现。
A=zeros(4,5)A =0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0B=[1 2 3 4 5 ;2 3 4 5 6 ;9 8 7 6 5 ;8 7 6 5 4]B =1 2 3 4 52 3 4 5 69 8 7 6 58 7 6 5 4A=zeros(size(B))A =0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0A=zeros(5)A =0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0C=ones(5,6)C =1 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1 C=ones(3)C =1 1 11 1 11 1 12、单位矩阵的生成(1)A=eye(M,N)命令,可生成单位矩阵,M和N分别为生成单位矩阵的行和列。
如何在Matlab中进行矩阵运算

如何在Matlab中进行矩阵运算矩阵运算是Matlab中非常重要的一部分,它可以让我们更方便地进行数学建模和算法实现。
在本文中,我们将介绍在Matlab中进行矩阵运算的基本知识和常用函数。
1. 矩阵的定义与表示在Matlab中,可以使用数组来表示矩阵。
我们可以使用一对方括号[],每行之间使用分号; 或者逗号, 来表示不同的矩阵元素。
例如,下面是一个3行3列的矩阵的定义:A = [1, 2, 3; 4, 5, 6; 7, 8, 9];2. 矩阵的基本运算Matlab中的矩阵运算包括加法、减法、乘法和除法等。
下面我们将逐个介绍这些运算。
2.1 矩阵的加法和减法矩阵的加法和减法是逐元素进行的,也就是对应位置的元素相加或相减。
例如,我们有两个矩阵A和B:A = [1, 2; 3, 4];B = [5, 6; 7, 8];我们可以使用矩阵加法和减法运算符+和-,计算出它们的和和差:C = A + B;D = A - B;运行结果为:D = [-4, -4; -4, -4]2.2 矩阵的乘法矩阵的乘法是按照矩阵乘法的规则进行的。
在Matlab中,我们可以使用*或者dot函数进行矩阵的乘法运算。
例如,我们有两个矩阵A和B:A = [1, 2; 3, 4];B = [5, 6; 7, 8];我们可以使用矩阵乘法运算符*,计算出它们的乘积:C = A * B;运行结果为:C = [19, 22; 43, 50]除了使用*号,我们还可以使用dot函数进行矩阵的乘法运算。
例如:D = dot(A, B);运行结果为:D = [19, 22; 43, 50]2.3 矩阵的除法矩阵的除法是矩阵乘法的逆运算。
在Matlab中,我们可以使用/或者inv函数进行矩阵的除法运算。
例如,我们有两个矩阵A和B:A = [1, 2; 3, 4];我们可以使用矩阵除法运算符/,计算出它们的除法结果:C = A / B;运行结果为:C = [-0.3333, -0.6667; -0.1667, -0.3333]除了使用/号,我们还可以使用inv函数进行矩阵的除法运算。
第2章 MATLAB矩阵及其运算

2.2.2 矩阵的拆分 1.矩阵元素 通过下标引用矩阵的元素,例如 A(3,2)=200 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就 是相应元素在内存中的排列顺序。在MATLAB中,矩阵元 素按列存储,先第一列,再第二列,依次类推。例如 A=[1,2,3;4,5,6]; A(3) ans = 2 显然,序号(Index)与下标(Subscript )是一一对应的,以 m×n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相 互转换关系也可利用sub2ind和ind2sub函数求得。
2、 数组元素的访问 、
(1)访问一个元素 访问一个元素: x(i)表示访问数组x的第i个元素. 访问一个元素 (2)访问一块元素 访问一块元素: x(a :b :c)表示访问数组x的从第a 访问一块元素 个元素开始,以步长为b到第c个元素(但不超过c),b可 以为负数,b缺损时为1. (3)直接使用元素编址序号 x([a b c d]) 表示提取 直接使用元素编址序号. 直接使用元素编址序号 数组x的第a、b、c、d个元素构成一个新的数组 [x(a) x(b) x(c) x(d)].
第2章 MATLAB矩阵及其运算
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 变量和数据操作 MATLAB矩阵 MATLAB运算 矩阵分析 矩阵的超越函数 字符串 结构数据和单元数据 稀疏矩阵
●
MATLAB作为线性系统的一种分析和仿真
工具,是理工科大学生应该掌握的技术工具,它 作为一种编程语言和可视化工具,可解决工程 工程、 工程 科学计算和数学学科 科学计算 数学学科中许多问题。 数学学科 ● MATLAB建立在向量 数组 矩阵 向量、数组 矩阵的基 向量 数组和矩阵 础上,使用方便,人机界面直观,输出结果可 视化。 ● 矩阵是MATLAB的核心 矩阵
Matlab矩阵运算基础数值运算ppt课件

ppt课件.
3
3.1 矩阵的创建
MATLAB中创建矩阵应遵循的原则: 矩阵的元素必须在方括号“[]”中; 矩阵的同行元素之间用空格或逗号“,”分隔: 矩阵的行与行之间用分号“;”或回车符分隔; 矩阵的尺寸不必预先定义; 矩阵元素可以是数值、变量、表达式或函数; 无任何元素的空矩阵也是合法的。
当一个指令或矩阵太长时,可用“ •••”续行
ppt课件.
6
3.1 矩阵的创建
2、矩阵的创建方法: (1)命令窗口直接输入元素序列创建矩阵。 (2)在M文件中用MATLAB语句创建矩阵。 (3)通过MATLAB内部函数创建矩阵。 (4)通过外部数据文件导入创建矩阵。 (5)冒号法。
ppt课件.
7
3.1.1 命令窗口直接输入
3 4 5
3 2 4 B2 5 3
2 3 1
求A*5, A.*5,A*B,A.*B。
ppt课件.
18
3.2.1 矩阵的算术运算
3、 矩阵的左除(\)、右除(/)和矩阵的点除法(.\,./)
A\B 相当inv(A)*B(A的逆阵左乘B),可以利用矩阵左除求解
线性方程组AX=b,X=A\b。如果A奇异阵或接近奇异,
3.2.1 矩阵的算术运算
例3-4
1 2 3 A2 3 4,
3 4 5
3 2 4 B2 5 3
2 3 1
求A+B,A-2
例3-5 两个矩阵如下所示,维数不同,求两者相
减的差。
1 2 3
A2 3 4,B1 2 3
3 4 5
ppt课件.
16
3.2.1 矩阵的算术运算
matlab第二章矩阵运算基础

矩阵的表示方法
01
02
03
文字表示法
使用中括号[]将矩阵元素 括起来,元素之间用逗号 或空格分隔,行与行之间 用分号隔开。
符号表示法
使用符号“”将矩阵元素 括起来,例如 A=[abc;def;ghi]。
分块表示法
将一个大的矩阵分成若干 个小矩阵,每个小矩阵称 为该大矩阵的一个子块。
02
04
矩阵分解与线性方程组求 解
矩阵的LU分解
LU分解
LU分解是一种将一个矩阵 分解为一个下三角矩阵L和 一个上三角矩阵U的乘积 的方法。
算法步骤
将给定矩阵A进行LU分解, 得到L和U两个矩阵,满足 A=LU。
应用场景
LU分解在许多数值计算问 题中都有应用,如线性方 程组求解、矩阵求逆等。
矩阵的QR分解
例如,`E = rand(3,3)`创建一个3x3的随机矩阵,所有元素 都是0到1之间的随机数。
矩阵的输入与
使用键盘输入:在Matlab命令 窗口中,可以直接输入矩阵并按
Enter键。
使用文件输入:可以使用`load` 函数从文件中读取矩阵数据,例
如`load('filename.mat')`。
使用`disp`、`fprintf`等函数输 出矩阵:例如,`disp(A)`会显示
迭代法适用于系数矩阵不可逆或系 数矩阵为稀疏矩阵的情况。
05
矩阵的应用实例
在控制系统中的应用
线性系统建模
利用矩阵表示线性系统的状态方程、输出方程等, 便于分析和设计控制系统。
控制系统分析
通过矩阵运算,可以对控制系统进行稳定性分析、 时域和频域分析等。
控制算法实现
利用矩阵运算实现控制算法,如PID控制、状态反 馈控制等。
第2章 MATLAB矩阵及其运算 [MATLAB大学教程][肖汉光,邹雪,宋涛]
![第2章 MATLAB矩阵及其运算 [MATLAB大学教程][肖汉光,邹雪,宋涛]](https://img.taocdn.com/s3/m/c03ba1e90c22590102029d60.png)
2.1 MATLAB的特殊量(预定义变量)
变量名 pi eps i或j nargin nargout realmin realmax bitmax Inf
NAN
ans
用法 圆周率π 机器的浮点运算误差限,2.2204e-016,若 |x|<eps,则可认为x=0 虚数单位
m函数入口参数变量,记录实际输入变量个数
>> load file2.mat B; 内存
%只将变量B从在file2.mat文件中载入到
>> load file2.mat; 入到内存
%默认将所有变量从在file2.mat文件中载
按格式2,在命令窗口输入命令:
>> A=rand(3,3);
>> B=rand(3,3);
>> save('file1.mat','-mat','A'); %将变量A存储以二进制格式写入file1.mat 文件
命令窗口输入命令:
>>x=30*pi/180;
>> a=sin(x); >> format short %设置显示格式为short
>> a >> format rat
%设置显示格式为rat
>> a >> format long
%设置显示格式为long
>> a >> format
%设置为初始默认状态
>> a
第二章 MATLAB矩阵及其运算
MATLAB 的特殊量 MATLAB变量 MATLAB数组与矩阵 MATLAB矩阵的运算和操作 MATLAB矩阵分析与处理
第二章matlab矩阵运算

③数组乘方(.^) — 元素对元素的幂 数组乘方
例: a=[1 2 3];b=[4 5 6]; z=a.^2 z= 1.00 4.00 z=a.^b z= 1.00 32.00
4 23 2 1 1 12 4 2
2. 矩阵的翻转与旋转
matlab提供对矩阵进行翻转与旋转的 函数,它们的调用格式:
rot90(A,k) fliplr(A) flipud(A)
3. 对角阵与三角阵
对角阵的定义: 对角阵的定义
只有对角线上有非0元素的矩阵称为对角矩阵, 只有对角线上有非 元素的矩阵称为对角矩阵, 元素的矩阵称为对角矩阵 对角线上的元素相等的对角矩阵称为数量矩阵, 对角线上的元素相等的对角矩阵称为数量矩阵, 对角线上的元素都为1的对角矩阵称为单位矩阵 的对角矩阵称为单位矩阵。 对角线上的元素都为 的对角矩阵称为x=[2 pi/2;sqrt(3) 3+5i]
3. 矩阵的修改
直接修改 可用↑键找到所要修改的矩阵,用←键移动 到要修改的矩阵元素上即可修改。 指令修改 可以用A(∗,∗)= ∗ 来修改(赋值,见MATLAB help Matrix)。
例如 a=[1 2 0;3 0 5;7 8 9] a =1 2 0 3 0 5 7 8 9 a(3,3)=0 a =1 2 0 3 0 5 7 8 0
3.左除与右除运算
若AV=I 则V=A-1 =inv(A) 对于方程 D*X=B inv(D)*D*X=inv(D)*B X=inv(D)*B=D\B (左除,逆矩阵左乘) 对于方程 X*D=B X*D*inv(D)=B*inv(D) X= B*inv(D)=B/D (右除,逆矩阵右乘)
第2章 MATLAB矩阵及其运算

物理科学与工程技术学院
3.除了可以把数值直接赋给变量,还可以将表达式, 矩阵赋给变量 【例2-4】变量的赋值举例如下: a=[1 4 7] B=abs(6+13i) C=[]
MATLAB的运行结果如下: a= 1 4 7 B= 14.3178 C= [] 注:当表达式的结果赋给变量时,而没有定义变量。系统默认 为ans。
物理科学与工程技术学院
7.MATLAB内存变量的管理
(1)在创建和修改数组时利用连续内存保存相关 的变量 在MATLAB中,通常利用内存中存在的连续虚拟 块为数组赋值时的内存分配,但是数组的类型和维 数作为数组的头信息保存在其它的地方(即两者没 有存放在同一连续的内存区域)。
数值计算与MATLAB语言 –Chen Z.H, P29
MATLAB的运行结果如下:
数值计算与MATLAB语言 –Chen Z.H, P27
物理科学与工程技术学院
3 2.5 2 1.5 1
1
1.5
2
2.5
3
3.5
4
2 1.5 1 0.5 0
1
1.5
2
2.5
3
3.5
4
图2.5 subplot运行结果
数值计算与MATLAB语言 –Chen Z.H, P28
物理科学与工程技术学院
下面对向量a进行长度的求解。 n=length(a)
MATLAB的运行结果如下: n= 10
利用MATLAB中的who命令显示MATLAB中 的变量名。 who a
MATLAB的运行结果如下: Your variables are: a
数值计算与MATLAB语言 –Chen Z.H, P14
第2章2MATLAB矩阵及其运算

例:
>> a=[1 2 3;4 5 6; 7 8 9]
a=
123
456
789
>> a(:,2) ans =
2
>> a(2,:) ans =
456
5
8
>> a([1 2],:) ans =
123 456
>> a([1 end],:) ans =
123 789
>> a([1 3],:) ans =
123 789
【例2.13.1-2】关系运算运用之一:求近似极限,修补图形缺口。 >> t=-2*pi:pi/10:2*pi; y=sin(t)./t; tt=t+(t==0)*eps; yy=sin(tt)./tt; subplot(1,2,1),plot(t,y),axis([-7,7,-0.5,1.2]), xlabel('t'),ylabel('y'),title('残缺图形') subplot(1,2,2),plot(tt,yy),axis([-7,7,-0.5,1.2]) xlabel('t'),ylabel('yy'),title('正确图形') Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.)
1122
2.矩阵拆分 (1) 利用冒号表达式获得子矩阵 ① A(:,j)表示取A矩阵的第j列全部元素;A(i,:)
表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵 第i行、第j列的元素。
第讲MATLAB矩阵及其运算

2
永久变量
在MATLAB工作内存中,驻留了几个由系统 本身在启动时定义的变量,我们称为永久变量, 永久变量可随时调用
• eps — 容差变量,定义为1.0到最近浮点数的距离, 在 pc机上= 2-52 • pi — 圆周率的近似值3.1415926 • inf或Inf — 表示正无穷,定义为1/0 • NaN — 非数,它产生于0× ,0/0,/ 等运算 • i,j — 虚数单位 • ans — 对于未赋值运算结果,自动赋给ans
(1) 在逻辑运算中,确认非零元素为真,用1表示, 零元素为假,用0表示。
(2) 设参与逻辑运算的是两个标量a和b,那么, a&b a,b全为非零时,运算结果为1,否则为0; a|b a,b中只要有一个非零,运算结果为1; ~a 当a是零时,结果为1;当a非零时,结果为0。
eg2-7-8
26
逻辑函数与关系函数
第2章 MATLAB数据及运算
2.1 MATLAB矩阵的创建与引用 2.2 特殊矩阵 2.3 MATLAB矩阵的运算 2.4 矩阵的相关操作 2.5 矩阵函数
1
变量与赋值
1.变量命名 在MATLAB 6.5中,变量名是以字母开头,后
接字母、数字或下划线的字符序列,最多63个字 符。在MATLAB中,变量名区分字母的大小写。
B/A
A的逆右乘B矩阵,也就是B*inv(A)
XA=B的解
若为标量,两种除法运算的结果相同,如3/4=4\3=0.75
又如,设a=[10.5,25],则a/5=5\a=[2.1000 5.0000]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例2-4 建立随机矩阵: (1) 在区间[20,50]内均匀分布的5阶随机矩 阵。 (2) 均值为0.6、方差为0.1的5阶正态分布随 机矩阵。 解: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5)
此外,常用的函数还有reshape(A,m,n),它 在矩阵总元素保持不变的前提下,将矩阵A 重新排成m×n的二维矩阵。如,前面的A, reshape(A,1,6)
大矩阵可由方括号中的小矩阵或向量建立起 来。例如, A=[1,2,3;4,5,6;7,8,9]; C=[A,eye(size(A));ones(size(A)),A] 输出结果是
C= 1 4 7 1 1 1 2 5 8 1 1 1 3 6 9 1 1 1 1 0 0 1 4 7 0 1 0 2 5 8 0 0 1 3 6 9
C([1,4],3:end) ans = 3 1 0 0 1 1 2 3 (2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义[]为空矩阵。给变 量X赋空矩阵的语句为X=[]。注意,X=[]与 clear X不同,clear是将X从工作空间中删 除,而空矩阵则存在于工作空间中,只是 维数为0。
利用MAT文件可以把当前Workspace中的 一些有用变量长久地保留下来,扩展名 是.mat。 MAT文件的生成和装入由save和load命令 来完成。常用格式为: save 文件名 [变量名表] [-append][-ascii] load 文件名 [变量名表] [-ascii] 文件名可以带路径,但不需带扩展名.mat。 变量名表中的变量个数不限,变量名之间 以空格分隔。 当变量名表省略时,保存或装入全部变量。
2.1.2 预定义变量
在MATLAB工作空间中,还驻留几个由系 统本身定义的变量——预定义变量。 例如,用pi表示圆周率π的近似值,用i,j 表示虚数单位,ans是计算结果的默认赋值 变量。 预定义变量有特定的含义,在使用时,应 尽量避免对这些变量重新赋值。
2.1.3 内存变量的管理
1.内存变量的删除与修改
¾ clear命令用于删除 Workspace中的变量。 (预定义变量不能被删除) ¾ who和whos这两个命令用于显示在 Workspace中已经驻留的变量名清单。 who命令只显示出驻留变量的名称,whos在 给出变量名的同时,还给出它们的大小、所 占字节数及数据类型等信息。
2.内存变量文件
函数使用说明: (1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的 模、字符串的ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、 round,要注意它们的区别。 (4) 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必须为相同大小 的实矩阵或为标量。
第2讲 MATLAB矩阵及其运算
2.1 变量和数据操作 2.2 MATLAB矩阵 2.3 MATLAB运算
2.1 变量和数据操作
2.1.1 变量与赋值
1.变量命名
变量名是以字母开头,后接字母、数字或 下划线的字符序列,最多63个字符。在 MATLAB中,变量名区分字母的大小写。 注意: MATLAB提供的标准函数名以及命 令名必须小写。
A= 1 1 1 1 8 4 2 1 27 9 3 1 125 25 5 1
(3) 希尔伯特矩阵 在MATLAB中,生成希尔伯特矩阵的函数 是hilb(n)。 使用一般方法求逆会因为原始数据的微小 扰动而产生不可靠的计算结果。MATLAB 中,有一个专门求希尔伯特矩阵的逆的函 数invhilb(n),其功能是求n阶的希尔伯特矩 阵的逆矩阵。
(4) 托普利兹矩阵 托普利兹(Toeplitz)矩阵除第一行第一列 外,其他每个元素都与左上角的元素相 同。生成托普利兹矩阵的函数是 toeplitz(x,y),它生成一个以x为第一列,y 为第一行的托普利兹矩阵。这里x, y均为向 量,两者不必等长。toeplitz(x)用向量x生成 一个对称的托普利兹矩阵。例如 T=toeplitz(1:5)
-ascii制格式处理。 save命令中的-append选项控制将变量追加 到MAT文件中。
2.1.4 MATLAB常用数学函数
MATLAB提供了许多数学函数,函数的自 变量规定为矩阵变量,运算法则是将函数 逐项作用于矩阵的元素上,因而运算的结 果是一个与自变量同维数的矩阵。 常用函数有: sin,cos,tan,asin,acos,atan, sinh,cosh,tanh,asinh,acosh,atanh, sqrt,log,log10,log2,exp,exp2, abs,angle,real,imag,conj,rem,mod, fix,floor,ceil,round,sign,gcd,lcm
结果是 a= 1 4 7 2 5 8 3 6 9
2.利用M文件建立矩阵
对于比较大且比较复杂的矩阵,可以为它 专门建立一个M文件(是文本文件)。下面通 过一个简单例子来说明如何利用M文件创建 矩阵。
例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]; (2) 把输入的内容存盘(设文件名为 mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即 运行该M文件,就会自动建立一个名为 MYMAT的矩阵,可供以后使用。
例2-6 求4阶希尔伯特矩阵及其逆矩阵。 解: format rat H=hilb(4) H= %以有理形式输出
1 1/2 1/2 1/3 1/3 1/4 1/4 1/5 H=invhilb(4)
1/3 1/4 1/5 1/6
1/4 1/5 1/6 1/7
H= 16 -120 240 -140 -120 1200 -2700 1680 240 -2700 6480 -4200 -140 1680 -4200 2800
ans = 1 4 2 5 3 6
Ex:1. 写出完成下列操作的命令。
a. b. c. d. 将矩阵A 第2~5 行中的第1,3,5列元素赋给矩阵B。 删除矩阵A的第7号元素。 将矩阵A的每个元素值加30。 求矩阵A的大小和维数(提示:用size函数和ndims函 数)。 e. 将含有12个元素的向量x转换成3×4矩阵。
工作空间窗口(Workspace)专门用于内存变 量的管理。在Workspace窗口中可以显示所 有内存变量的属性。 ¾ 当选中某些变量后,再单击Delete按钮, 就能删除这些变量。 ¾ 当选中某些变量后,再单击Open按钮,将 进入变量编辑器。 通过变量编辑器可以直接 观察变量中的具体元素,也可修改变量中的 具体元素。
2.2 MATLAB矩阵
2.2.1 矩阵的建立
1.直接输入法
最简单的建立矩阵的方法是从键盘直接输入 矩阵的元素。具体方法如下: 将矩阵的元素用方括号括起来,按矩阵行的 顺序输入各元素,同一行的各元素之间用空 格或逗号分隔,不同行的元素之间用分号分 隔。 如:a=[1,2,3;4,5,6;7,8,9]
(2) 范得蒙矩阵 范得蒙(Vandermonde)矩阵最后一列全为 1,倒数第二列为一个指定的向量,其他各 列是其后列与倒数第二列的点乘积。可以 用一个指定向量生成一个范得蒙矩阵。 在MATLAB中,函数vander(V)生成以向量 V为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得
2.2.3 特殊矩阵
1.通用的特殊矩阵
常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生0~1间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态分 布随机矩阵。
例2-3 分别建立3×3、3×2和与矩阵A同样大 小的零矩阵。 解: (1) zeros(3) (2) zeros(3,2) (3) 设A为2×3矩阵,则可以用zeros(size(A)) 建立一个与矩阵A同样大小零矩阵。如, A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A zeros(size(A)) %产生一个与矩阵A同样 大小的零矩阵
2.矩阵拆分
(1) 利用冒号表达式获得子矩阵 ① A(:,j)表示取A矩阵的第j列全部元素;A(i,:) 表示A矩阵第i行的全部元素;A(i,j)表示取A矩 阵第i行、第j列的元素。 ② A(i:i+m,:)表示取A矩阵第i~i+m行的全部元 素;A(:,k:k+m)表示取A矩阵第k~k+m列的全 部元素,A(i:i+m,k:k+m)表示取A矩阵第i~ i+m行内,并在第k~k+m列中的所有元素。 ③ 还可利用一般向量和end运算符来表示矩阵 下标,从而获得子矩阵。end表示某一维的末 尾元素下标。如,前面的矩阵C,
4.建立大矩阵
2.2.2 矩阵的拆分
1.矩阵元素
¾ 通过下标引用矩阵的元素,例如,A(3,2)=8
¾ 采用矩阵元素的序号来引用矩阵元素。矩阵元素的 序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储,先第一列,再 第二列,依次类推。例如 A=[1,2,3;4,5,6]; A(3) ans = 2 显然,序号(Index)与下标(Subscript )是一一对应 的,以m×n矩阵A为例,矩阵元素A(i,j)的序号为(j1)*m+i。其相互转换关系也可利用sub2ind和ind2sub 函数求得。
3.利用冒号表达式建立一个向量