第3章 MATLAB矩阵分析与处理
MATLAB基础教程与实例解析

MATLAB基础教程与实例解析第一章:MATLAB介绍与安装1.1 MATLAB的定义与特点1.2 MATLAB的应用领域1.3 MATLAB的安装与配置第二章:MATLAB语法与数据类型2.1 MATLAB的基本语法2.2 MATLAB的变量与赋值2.3 MATLAB的数据类型与操作第三章:向量与矩阵操作3.1 定义向量与矩阵3.2 向量与矩阵的运算3.3 向量与矩阵的索引与切片第四章:函数与脚本文件4.1 函数的定义与调用4.2 函数的输入与输出4.3 脚本文件的编写与执行第五章:图形绘制与可视化5.1 MATLAB的绘图函数与参数5.2 绘制二维图形5.3 绘制三维图形第六章:数据分析与处理6.1 数据导入与导出6.2 统计分析与拟合6.3 信号处理与滤波第七章:优化与线性方程求解7.1 优化理论与最优化问题7.2 MATLAB中的优化函数与工具箱7.3 线性方程组的求解第八章:数值计算与数值求解8.1 数值计算的原理与方法8.2 MATLAB中的数值计算函数与工具箱8.3 数值求解与数值积分第九章:图像处理与计算机视觉9.1 图像的读入与显示9.2 图像的灰度转换与增强9.3 图像的滤波与特征提取第十章:机器学习与深度学习10.1 机器学习与深度学习的基本概念10.2 MATLAB中的机器学习工具箱10.3 使用MATLAB进行数据建模与预测在MATLAB基础教程与实例解析中,我们将逐个章节的介绍MATLAB的各个方面,帮助读者建立起扎实的基础并掌握实际应用技能。
第一章中,我们将首先介绍MATLAB的定义与特点,帮助读者了解其在科学计算、数据分析和工程设计中的重要性。
然后,我们将详细介绍MATLAB的安装与配置过程,确保读者能够成功地将MATLAB部署在自己的计算机上。
在第二章中,我们将深入探讨MATLAB的语法与数据类型。
我们将从MATLAB的基本语法开始,包括语句的结束、注释的添加和变量的使用。
第三章_matlab矩阵运算

主讲:陈孝敬 E-mail:chenxj9@
第3章
数学运算
主要内容:
①矩阵运算; ②矩阵元素运算;
3.1 矩阵运算
3.1.1 矩阵分析
1.向量范式定义:
x x x
1
n
k 1
xk
2 k
2
k 1 n
x
n
1/ 2
k 1
xk
向量的3种常用范数及其计算函数 在MATLAB中,求向量范数的函数为: (1) norm(V)或norm(V,2):计算向量V的2—范数。 (2) norm(V,1):计算向量V的1—范数。 (3) norm(V,inf):计算向量V的∞—范数。
3.1.2 矩阵分解
矩阵分解:把矩阵分解成比较简单或对它性质比较熟悉的若干 矩阵的乘积的形式;
1.Cholesky分解: Cholesky分解是把对称正定矩阵表示成上三角矩阵的转 置与其本身的乘积,即:A=RTR,在Matlab中用函数chol 来计算Cholesky分解 例3-13 求矩阵A=pascal(4)的Cholesky分解, A=pascal(4) R=chol(A) R’*R
例3-18.求解方程组
x1 x2 3 x3 x4 1 3 x1 x2 3 x3 4 x4 4 x 5x 9 x 8x 0 2 3 4 1
解 先用Matlab函数null求出对应的齐次线性方程组的基础解 系,再利用其系数矩阵的上、下三角阵求出方程组的一个特解, 这样即可得到该方程组的通解,程序如下: >> >> >> >> >> >> A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8]; b=[1 4 0] ′; format rat C=null(A , ′r′); %求基础解系 [L,U]=lu(A); %A=LU,L为上三角阵,U为下三角阵 X0= U\(L\b) %用LU求出一个齐次方程的特解
控制系统仿真_薛定宇第三章 科学运算问题的MATLAB求解

32/62
微分方程求解的步骤
将微分方程变换成标准型 用MATLAB描述微分方程
M-函数 入口:function dx=funmane(t,x) 匿名函数 >> f=@(t,x)[...]
求解
验证:odeset()函数
控制系统仿真与CAD 国家级精品课程
2014-12-31
2014-12-31
9/62
数值解
ห้องสมุดไป่ตู้
解析解
解析解
控制系统仿真与CAD 国家级精品课程
2014-12-31
10/62
演示:自编 funm() 求矩阵的任意函数
求
结果:左上角元素
控制系统仿真与CAD 国家级精品课程
2014-12-31
11/62
3.1 线性代数问题求解小结
线性代数很多问题可以用MATLAB语句直 接求解,和数学表示差不多一样直观 很多方法可以同时得出解析解和数值解
本节主要介绍和这门课程相关的问题 线性代数问题的MATLAB求解 代数方程求解、微分方程求解 最优化问题的求解 Laplace 变换与 z 变换问题的求解
控制系统仿真与CAD 国家级精品课程
2014-12-31
2/62
进一步学习这方面内容建议阅读
薛定宇、陈阳泉《高等应用数学问题的 MATLAB求解》(第二版),清华大学出 版社,2008。英文版:Solving Applied Mathematical Problems with MATLAB,CRC Press,2008 遇到某个MATLAB问题找不到合适的工具 箱,试在下面网址搜索
MATLAB有限元分析与应用精选全文完整版

%SpringElementForces This function returns the element nodal force
%
vector given the element stiffness matrix k
%
and the element nodal displacement vector u.
2019/11/28
§2-1 弹簧元
u1=U(1:2); f1=SpringElementForces(k1,u1);
f1 = -15.0000 15.0000
u2=U(2:3); f2=SpringElementForces(k2,u2);
f2 = -15.0000 15.0000
12
§3-1 弹簧元
%
modulus of elasticity E, cross-sectional
%
area A, and length L. The size of the
%
element stiffness matrix is 2 x 2.
y = [E*A/L -E*A/L ; -E*A/L E*A/L];
2019/11/28
3.1 单元刚度矩阵的形成
function y = SpringElementStiffness(k)
%SpringElementStiffness This function returns the element stiffness %matrix for a spring with stiffness k. %The size of the element stiffness matrix is 2 x 2.
第三章 MATLAB数值计算

功 能
如果所有的元素都是非零值,返回1;否则,返回0。 如果有一个元素为非零值,那么返回1;否则,返回0 判断是否空矩阵 判断两矩阵是否相同 判断是否是实矩阵 返回一个由非零元素的下标组成的向量
常用的矩阵函数
矩阵的行列式、矩阵的秩、特征值等在现代控制理论 中有广泛的应用,Matlab提供了相应的函数求其值 • det(A) 方阵A的行列式 • eig(A) 方阵A的特征值和特征向量 • rank(A) 矩阵A的秩 • trace(A) 矩阵A的迹 • expm(A) 矩阵的指数 • sqrtm(A) 求矩阵的平方根 • funm(A,’fun’) 求一般的方阵函数
矩阵的修改
• (1)直接修改 可用↑键找到所要修改的矩阵,用←键移动到要 修改的矩阵元素上即可修改。
• (2)指令修改 可以用A(﹡, ﹡)=﹡ 来修改。 • (3)由矩阵编辑器修改 由Matlab提供工具栏按钮来查看工作区变量,单 击变量,可以打开或删除变量
• 例: 修改矩阵A中元素的数值 >>A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]; >>A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); 则矩阵变为: • A= 0 2 3 4 5 7 7 8 9 10 11 12 13 14、控制理论、物理学等领域中的很多 问题都可以归结到下面的线性方程组
矩阵行列式
• 如N阶矩阵A的行列式不等于0,即时,称矩阵 A非奇异,否则A奇异。当线性方程系数矩阵 非奇异,则线性方程有唯一解。对N阶方阵A, MATLAB中由函数得到行列式
第3章MATLAB矩阵分析与处理

第3章MATLAB矩阵分析与处理MATLAB是一种强大的数学计算软件,用于实现矩阵分析与处理。
在MATLAB中,矩阵是最常用的数据结构之一,通过对矩阵的分析和处理,可以实现很多有用的功能和应用。
本章将介绍MATLAB中矩阵分析与处理的基本概念和方法。
1.矩阵的基本操作在MATLAB中,我们可以使用一些基本的操作来创建、访问和修改矩阵。
例如,可以使用“[]”操作符来创建矩阵,使用“(”操作符来访问和修改矩阵中的元素。
另外,使用“+”、“-”、“*”、“/”等运算符可以对矩阵进行加减乘除等运算。
2.矩阵的运算MATLAB提供了一系列的矩阵运算函数,可以对矩阵进行常见的运算和操作,例如矩阵的转置、求逆、行列式、特征值和特征向量等。
这些函数可以帮助我们进行矩阵的分析和求解。
3.矩阵的分解与合并在MATLAB中,我们可以对矩阵进行分解或合并操作。
例如,可以将一个矩阵分解为其QR分解、LU分解或奇异值分解等。
另外,可以使用“[]”操作符来将多个矩阵合并为一个矩阵,或者使用“;”操作符来将多个矩阵连接为一个矩阵。
4.矩阵的索引与切片MATLAB提供了灵活的索引和切片功能,可以方便地访问和修改矩阵中的元素。
可以使用单个索引来访问单个元素,也可以使用多个索引来访问/修改一行或一列的元素。
此外,还可以通过切片操作来访问矩阵的一部分。
5.矩阵的应用矩阵分析与处理在MATLAB中有着广泛的应用。
例如,可以使用矩阵进行图像处理,通过对图像矩阵的操作,可以实现图像的缩放、旋转、滤波等。
另外,矩阵还可以用于线性回归、分类、聚类和模式识别等领域。
总之,MATLAB提供了丰富的功能和工具,可以方便地进行矩阵分析与处理。
无论是简单的矩阵运算,还是复杂的矩阵分解与合并,MATLAB 都提供了相应的函数和操作符。
通过熟练使用MATLAB,我们可以高效地进行矩阵分析与处理,从而实现各种有用的功能和应用。
matlab实验
实验一 MATLAB基本操作一、实验目的1、了解MATLAB应用程序环境2、掌握MATLAB语言程序的书写格式和MATLAB语言程序的结构。
3、掌握在MATLAB应用环境下编写程序4、掌握MATALB调试过程,帮助文件5、掌握MATLAB语言上机步骤,了解运行一个MATLAB程序的方法。
6、本实验可在学习完教材第一章后进行。
二、主要仪器及耗材PC电脑,MATLAB6.5软件三、实验内容和步骤1、MATLAB语言上机步骤:(1)、进入系统在C盘或其他盘上找到MATLAB或MATLAB6.5,然后双击其图标打开文件夹。
然后进行编辑源程序->编译->连接->执行程序->显示结果(2)、常用命令编辑切换(F6),编译(F9),运行(CTRL+F9),显示结果(ALT+F5)其它常用命令见“附录一”。
2、有下面的MATLAB程序。
(1)数值计算功能:如,求方程 3x4+7x3 +9x2-23=0的全部根p=[3,7,9,0,-23]; %建立多项式系数向量x=roots(p) %求根(2)绘图功能:如,绘制正弦曲线和余弦曲线x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));(3)仿真功能:如,请调试上述程序。
3、熟悉MATLAB环境下的编辑命令,具体见附录一。
三、实验步骤1、静态地检查上述程序,改正程序中的错误。
2、在编辑状态下照原样键入上述程序。
3、编译并运行上述程序,记下所给出的出错信息。
4、按照事先静态检查后所改正的情况,进行纠错。
5、再编译执行纠错后的程序。
如还有错误,再编辑改正,直到不出现语法错误为止。
四、实验注意事项1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。
分析讨论对策成功或失败的原因。
2、总结MATLAB程序的结构和书写规则。
五、思考题1、matlab到底有多少功能?2、MATLAB的搜索路径3、掌握使用MATLAB帮助文件实验二 MATLAB 矩阵及其运算一、 实验目的1、了解矩阵的操作,包括矩阵的建立、矩阵的拆分、矩阵分析等2、了解MATLAB 运算,包括算术运算、关系运算、逻辑运算等3、掌握字符串的操作,了解结构数据和单元数据。
Matlab 矩阵的运算
(1) 矩阵加减运算 假定有两个矩阵A和B,则可以由A+B和 A-B实现矩阵的加减运算。 运算规则是:若A和B矩阵的维数相同, 则可以执行矩阵的加减运算,A和B矩阵的相 应元素相加减。如果A与B的维数不相同,则 MATLAB将给出错误信息,提示用户两个矩 阵的维数不匹配。 (2) 矩阵乘法 假定有两个矩阵A和B,若A为m×n矩阵, B为n×p矩阵,则C=A*B为m×p矩阵。
关系运算符的运算法则为: (1) 当两个比较量是标量时,直接比较两 数的大小。若关系成立,关系表达式结果为1, 否则为0。 (2) 当参与比较的量是两个维数相同的矩 阵时,比较是对两矩阵相同位置的元素按标 量关系运算规则逐个进行,并给出元素比较 结果。最终的关系运算的结果是一个维数与 原矩阵相同的矩阵,它的元素由0或1组成。
例3-3 先建立 5×5矩阵A,然后将A的第一 行元素乘以1,第二行乘以2,…,第五行乘 以5。 A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22; 10,12,19,21,3;11,18,25,2,19]; D=diag(1:5); D*A %用D左乘A,对A的每行 乘以一个指定常数
3.3 字符串
在MATLAB中,字符串是用单撇号(‘)括 起来的字符序列。 MATLAB 将字符串当作一个行向量, 每个元素对应一个字符,其标识方法和数值 向量相同。也可以建立多行字符串矩阵。
字符串是以ASCII码形式存储的。abs和 double函数都可以用来获取字符串矩阵所对 应的ASCII码数值矩阵。 相反,char函数可以把ASCII码矩阵转换 为字符串矩阵。
3.2.4 方阵的行列式
把一个方阵看作一个行列式,并对其按 行列式的规则求值,这个值就称为矩阵所对 应的行列式的值。 在MATLAB中,求方阵A所对应的行列 式的值的函数是det(A)。
MATLAB程序设计期末复习题集
第1章 MATLAB系统环境一、选择题1.最初的MATLAB核心程序是采用()语言编写的。
A.FORTRAN B.C C.BASIC D.PASCAL2.2016年3月发布的MATLAB版本的编号为()。
A.MATLAB 2016Ra B.MATLAB R2016aC.MATLAB 2016Rb D.MATLAB R2016b3.下列选项中能反应MATLAB特点的是()。
A.算法最优 B.不需要写程序C.程序执行效率高 D.编程效率高4.当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上()。
A.冒号(:) B.逗号(,) C.分号(;) D.百分号(%)5.如果要重新执行以前输入的命令,可以使用()。
A.左移光标键(←) B.右移光标键(→)C.下移光标键(↓) D.上移光标键(↑)6.MATLAB命令行窗口中提示用户输入命令的符号是()。
A.> B.>> C.>>> D.>>>>7.plot(x,y)是一条()命令。
A.打印 B.输出 C.绘图 D.描点8.以下两个命令行的区别是()。
>> x=5,y=x+10>> x=5,y=x+10;A.第一个命令行同时显示x和y的值,第二个命令行只显示x的值B.第一个命令行同时显示x和y的值,第二个命令行只显示y的值C.第一个命令行只显示x的值,第二个命令行同时显示x和y的值D.第一个命令行只显示y的值,第二个命令行同时显示x和y的值9.下列命令行中,输出结果与其他3项不同的是()。
A.>> 10+20+... B.>> ...30 10+20+30C.>> 10+20+30%5 D.>> %10+20+3010.下列选项中,不是MATLAB帮助命令的是()。
A.lookfor B.lookfor –all C.search D.help二、填空题1.MATLAB一词来自的缩写。
MATLAB中的矩阵分解与降维技术
MATLAB中的矩阵分解与降维技术随着科学技术的不断发展和数据规模的急剧增加,如何高效地处理和分析大规模数据已成为一个迫切需要解决的问题。
矩阵分解与降维技术在这一领域发挥着重要的作用。
本文将探讨MATLAB中的矩阵分解与降维技术,并介绍其应用于数据处理与分析中的具体实例。
1. 矩阵分解与降维技术简介矩阵分解与降维技术是一种将高维数据转化为低维数据的方法,通过将原始数据投影到一个更低维度的空间中,从而减小数据量的同时保留了数据的关键特征。
矩阵分解与降维技术的主要目标是找到一个能较好地近似原始数据的低维子空间,并且在降维过程中尽量保持数据的信息。
2. 主成分分析(PCA)主成分分析(Principal Component Analysis,PCA)是一种常用的矩阵分解与降维技术,通过线性变换将原始数据映射到一个新的空间中。
在这个新的空间中,数据的维度被降低,并且尽量保留了原始数据的方差。
PCA的核心思想是寻找数据中方差最大的方向作为新的坐标轴,从而使得映射后的数据在这个方向上的方差最大化。
在MATLAB中,使用PCA进行数据降维非常简单。
首先,我们需要导入数据到MATLAB环境中,然后使用PCA函数进行降维处理。
具体的语法如下所示:```[coeff,score,latent] = pca(data);```其中,data表示原始数据矩阵,coeff是相关系数矩阵,score是降维后的数据矩阵,latent是主成分的方差。
3. 奇异值分解(SVD)奇异值分解(Singular Value Decomposition,SVD)是一种将矩阵分解为奇异值和两个酉矩阵的技术,常用于降维、矩阵压缩和数据恢复等领域。
SVD可以对任意大小和形状的矩阵进行分解,并且具有较好的数学性质。
在MATLAB中,使用SVD进行矩阵分解与降维同样非常简单。
我们可以使用svd函数对矩阵进行分解,并得到奇异值、左奇异向量和右奇异向量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建立随机矩阵: 例3.2 建立随机矩阵: (1) 在区间 在区间[20,50]内均匀分布的 阶随机矩阵。 内均匀分布的5阶随机矩阵 内均匀分布的 阶随机矩阵。 (2) 均值为 、方差为 的5阶正态分布随机矩阵。 均值为0.6、方差为0.1的 阶正态分布随机矩阵 阶正态分布随机矩阵。 命令如下: 命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5) 此外,常用的函数还有reshape(A,m,n),它在矩 此外,常用的函数还有 , 阵总元素保持不变的前提下,将矩阵A重新排成 阵总元素保持不变的前提下,将矩阵 重新排成 m×n的二维矩阵。 的二维矩阵。 × 的二维矩阵
执行 执行fliplr(A) 后 4 1 5 2 6 3 4.矩阵的上下翻转 . MATLAB对矩阵 实施上下翻转的函数是 对矩阵A实施上下翻转的函数是 对矩阵 实施上下翻转的函数是flipud(A)。 。
(2) 构造对角矩阵 为具有m个元素的向量 将产生一个m× 对 设V为具有 个元素的向量,diag(V)将产生一个 ×m对 为具有 个元素的向量, 将产生一个 角矩阵,其主对角线元素即为向量V的元素 的元素。 角矩阵,其主对角线元素即为向量 的元素。 diag(V)函数也有另一种形式 函数也有另一种形式diag(V,k),其功能是产生一 函数也有另一种形式 , 对角阵, 个n×n(n=m+|k|)对角阵,其第 条对角线的元素即为向量 × 对角阵 其第k条对角线的元素即为向量 V的元素。 的元素。 的元素
的展开式。 例3.5 求(x+y)5的展开式。 命令窗口, 在MATLAB命令窗口,输入命令: 命令窗口 输入命令: pascal(6) 矩阵次对角线上的元素1,5,10,10,5,1即为展 矩阵次对角线上的元素 即为展 开式的系数。 开式的系数。
3.2 矩阵结构调整变换 3.2.1 对角阵与三角阵 1.对角阵 . 只有对角线上有非0元素的矩阵称为对角矩 只有对角线上有非 元素的矩阵称为对角矩 阵,对角线上的元素相等的对角矩阵称为 数量矩阵,对角线上的元素都为1的对角矩 数量矩阵,对角线上的元素都为 的对角矩 阵称为单位矩阵。 阵称为单位矩阵。
个数填入一个5行 列的 例3.3 将101~125等25个数填入一个 行5列的 等 个数填入一个 表格中, 表格中,使其每行每列及对角线的和均为 565。 。 M=100+magic(5)
(2) 范得蒙矩阵 范得蒙(Vandermonde)矩阵最后一列全为 , 矩阵最后一列全为1, 范得蒙 矩阵最后一列全为 倒数第二列为一个指定的向量, 倒数第二列为一个指定的向量,其他各列 是其后列与倒数第二列的点乘积。 是其后列与倒数第二列的点乘积。可以用 一个指定向量生成一个范得蒙矩阵。 一个指定向量生成一个范得蒙矩阵。在 MATLAB中,函数 生成以向量V 中 函数vander(V)生成以向量 生成以向量 为基础向量的范得蒙矩阵。例如, 为基础向量的范得蒙矩阵。例如, A=vander([1;2;3;5])即可得到上述范得蒙矩 即可得到上述范得蒙矩 阵。
(1) 提取矩阵的对角线元素 矩阵, 函数用于提取矩阵A主对角线元 设A为m×n矩阵,diag(A)函数用于提取矩阵 主对角线元 为 × 矩阵 函数用于提取矩阵 产生一个具有min(m,n)个元素的列向量。 个元素的列向量。 素,产生一个具有 个元素的列向量 diag(A)函数还有一种形式 函数还有一种形式diag(A,k),其功能是提取第 条 函数还有一种形式 ,其功能是提取第k条 对角线的元素。 对角线的元素。
例3.4 求4阶希尔伯特矩阵及其逆矩阵。 阶希尔伯特矩阵及其逆矩阵。 阶希尔伯特矩阵及其逆矩阵 命令如下: 命令如下: format rat %以有理形式输出 以有理形式输出 H=hilb(4)
H= 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7
建立随机矩阵: 例3.2 建立随机矩阵: (1) 在区间 在区间[20,50]内均匀分布的 阶随机矩阵。 内均匀分布的5阶随机矩阵 内均匀分布的 阶随机矩阵。 (2) 均值为 、方差为 的5阶正态分布随机矩阵。 均值为0.6、方差为0.1的 阶正态分布随机矩阵 阶正态分布随机矩阵。 命令如下: 命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5) 此外,常用的函数还有reshape(A,m,n),它在矩 此外,常用的函数还有 , 阵总元素保持不变的前提下,将矩阵A重新排成 阵总元素保持不变的前提下,将矩阵 重新排成 m×n的二维矩阵。 的二维矩阵。 × 的二维矩阵
(5) 伴随矩阵 MATLAB生成伴随矩阵的函数是 生成伴随矩阵的函数是 compan(p),其中 是一个多项式的系数向 ,其中p是一个多项式的系数向 高次幂系数排在前,低次幂排在后。 量,高次幂系数排在前,低次幂排在后。 例如,为了求多项式的x 的伴随矩阵, 例如,为了求多项式的 3-7x+6的伴随矩阵, 的伴随矩阵 可使用命令: 可使用命令: p=[1,0,-7,6]; compan(p)
(6) 帕斯卡矩阵 我们知道,二次项(x+y)n展开后的系数随 展开后的系数随n 我们知道,二次项 展开后的系数随 的增大组成一个三角形表, 的增大组成一个三角形表,称为杨辉三角 形。由杨辉三角形表组成的矩阵称为帕斯 矩阵。 生成一个n阶 卡(Pascal)矩阵。函数 矩阵 函数pascal(n)生成一个 阶 生成一个 帕斯卡矩阵。 帕斯卡矩阵。
Y=?
2.三角阵 . 三角阵又进一步分为上三角阵和下三角阵, 三角阵又进一步分为上三角阵和下三角阵, 所谓上三角阵, 所谓上三角阵,即矩阵的对角线以下的元 素全为0的一种矩阵 的一种矩阵, 素全为 的一种矩阵,而下三角阵则是对角 线以上的元素全为0的一种矩阵 的一种矩阵。 线以上的元素全为 的一种矩阵。
分别建立3× 、 × 和与矩阵 和与矩阵A同样大小的零 例3.1 分别建立 ×3、3×2和与矩阵 同样大小的零 矩阵。 矩阵。 (1) 建立一个 ×3零矩阵。 建立一个3× 零矩阵 零矩阵。 zeros(3) (2) 建立一个 ×2零矩阵。 建立一个3× 零矩阵 零矩阵。 zeros(3,2) (3) 设A为2×3矩阵,则可以用 矩阵, 为 × 矩阵 则可以用zeros(size(A))建立 建立 一个与矩阵A同样大小零矩阵 同样大小零矩阵。 一个与矩阵 同样大小零矩阵。 A=[1 2 3;4 5 6]; %产生一个 ×3阶矩阵 产生一个2× 阶矩阵 阶矩阵A 产生一个 zeros(size(A)) %产生一个与矩阵 同样大小的 产生一个与矩阵A同样大小的 产生一个与矩阵 零矩阵
(1) 上三角矩阵 求矩阵A的上三角阵的 的上三角阵的MATLAB函数是 函数是triu(A)。 求矩阵 的上三角阵的 函数是 。 triu(A)函数也有另一种形式 函数也有另一种形式triu(A,k),其功能是求矩阵 函数也有另一种形式 ,其功能是求矩阵A 的第k条对角线以上的元素 例如,提取矩阵A的第 条对角线以上的元素。 的第2条对 的第 条对角线以上的元素。例如,提取矩阵 的第 条对 角线以上的元素,形成新的矩阵B。 角线以上的元素,形成新的矩阵 。 (2) 下三角矩阵 的下三角矩阵的函数是tril(A) 在MATLAB中,提取矩阵 的下三角矩阵的函数是 中 提取矩阵A的下三角矩阵的函数是 和tril(A,k),其用法与提取上三角矩阵的函数 ,其用法与提取上三角矩阵的函数triu(A)和 和 triu(A,k)完全相同。 完全相同。 完全相同 例:triu(ones(4,4),-1) ans = 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1
(3) 希尔伯特矩阵 在MATLAB中,生成希尔伯特矩阵的函数 中 是hilb(n)。 。 使用一般方法求逆会因为原始数据的微小 扰动而产生不可靠的计算结果。 扰动而产生不可靠的计算结果。MATLAB 中,有一个专门求希尔伯特矩阵的逆的函 数invhilb(n),其功能是求 阶的希尔伯特矩 ,其功能是求n阶的希尔伯特矩 阵的逆矩阵。 阵的逆矩阵。
先建立5× 矩阵 矩阵A,然后将A的第一行 例3.6 先建立 ×5矩阵 ,然后将 的第一行 元素乘以1,第二行乘以2, , 元素乘以 ,第二行乘以 ,…,第五行乘 以5。 。
A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;... 11,18,25,2,19]; D=diag(1:5); D*A %用D左乘 ,对A的每行乘以一个指定常数 左乘A, 用 左乘 的每行乘以一个指定常数 思考:假设 思考:假设X=[1 2 3;4 5 6;7 8 9];Y=diag(diag(X))
H=invhilb(4)
(4) 托普利兹矩阵 托普利兹(Toeplitz)矩阵除第一行第一列外,其他每个元素 矩阵除第一行第一列外, 托普利兹 矩阵除第一行第一列外 都与左上角的元素相同。 都与左上角的元素相同。生成托普利兹矩阵的函数是 toeplitz(x,y),它生成一个以 为第一列,y为第一行的托普 为第一列, 为第一行的托普 ,它生成一个以x为第一列 利兹矩阵。这里x, 均为向量 两者不必等长。 均为向量, 利兹矩阵。这里 y均为向量,两者不必等长。toeplitz(x) 用向量x生成一个对称的托普利兹矩阵 生成一个对称的托普利兹矩阵。 用向量 生成一个对称的托普利兹矩阵。例如 T1=toeplitz(1:6) T2=toeplitz(1:4,1:5) (
3.矩阵的左右翻转 . 对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换, 对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换, 第二列和倒数第二列调换, ,依次类推。 第二列和倒数第二列调换,…,依次类推。MATLAB对 对 矩阵A实施左右翻转的函数是 实施左右翻转的函数是fliplr(A)。 矩阵 实施左右翻转的函数是 。 A= 1 4 2 5 3 6