第三节矩阵基本函数运算与矩阵元素的提取(第二章)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三
第三节矩阵基本函数运算与矩阵元素的提取(第二章)一、矩阵基本函数运算
此运算是矩阵运算中最实用的部分,其基本命令如下:
命令集9 矩阵的大小、行列式、逆、特征值、秩、迹、范数size(A) 给出包含A的维数的一个行向量.在这个返回向量中的第一个元素是行数,随后是列数.
[ m,n ]=size(A) 给出A的维数、m行数和n列数,即两个标量.
length(x) 给出一个向量的长度,即x分量个数.
sum(A) 若A是矩阵,给出一个行向量,其每个分量表示A相应的列和;
若A是向量,给出此向量的分量和.
det(A) 求矩阵A的行列式.
eig(A) 求包含矩阵A的特征值的向量.
[X,D]=eig(A) 求包含矩阵A的特征值对应的对角阵D和以相应特征向
量为列的矩阵.
inv(A)或A ^ (-1) 求矩阵A的逆矩阵.
rank(A) 求矩阵A的秩.
trace(A) 求矩阵A的迹(对角线元素之和).
norm(A,1) 矩阵A的1—范数或列和范数,定义如下.
norm(A,2) 矩阵A的2—范数.
norm(A,inf) 矩阵A的∞—范数.
norm(x,1) 向量x的1—范数或列和范数,定义如下.
norm(x,2) 向量x的2—范数.
norm(x,inf) 向量x的∞—范数.
范数定义如下:
设'12(,,,)n x x x x =,()ij n m A a ⨯=,则相应范数定义如下
11n i i x x ==∑
;2x =;max i i
x x ∞= 11max n ij j i A a ==∑,1max n
ij i j A a ∞==∑
,2A'A i A λ=,其中为的最大特征值 二、矩阵元素的提取
在MATLAB 中还有利用已存在的矩阵建立新矩阵的命令.以下假设矩阵 A 是m ×n 的矩阵,x 是个有n 个元素的向量.
1. 对角阵与三角阵的生成
命令集10
diag(A) 生成一个由矩阵A 主对角线元素组成的列向量.主对角线总是
从矩阵左上角开始.对于方阵来说它结束于矩阵的右下角.
diag(x) 生成一个n 维的方阵,它的主对角线元素值取自向量 x ,其余
元素的值都为0.
diag(A , k) 生成一个由矩阵A 第k 条对角线的元素组成的列向量. k= 0为
主对角线;k< 0为下第k 对角线;k> 0为上第k 对角线.
diag(x , k) 生成一个(n+ a b s (k) )×(n+ a b s (k) )维的矩阵,该矩阵的第k
条对角线元素取自向量x ,其余元素都为零.关于参数k 可参考
上个命令.
triu(A) 生成一个和A 大小相同的上三角矩阵.该矩阵的主对角线及
以上元素取自A 中相应元素,其余元素都为零.
triu(A , k) 生成一个和A 大小相同的上三角矩阵.该矩阵的第k 条对角线
及以上元素取自A 中相应元素,其余元素都为零.
命令t r i u ( A , 0 )等同于命令t r i u ( A ).
tril(A)生成一个和A大小相同的下三角矩阵.该矩阵的主对角线及以下
元素取自A中相应元素,其余元素都为零.
tril(A , k) 生成一个和A大小相同的下三角矩阵.该矩阵的第k条对角线
及以下元素取自A中相应元素,负数k表示主对角线下的对角
线.其余元素都为零.命令t r i l ( A , 0 )等同于命令t r i l ( A ). 2. 向量和子矩阵的生成
在MATLAB中可以使用冒号‘:’来代表一系列数值.有时也使用它来定义一个子矩阵.
命令集11
i : k创建从i开始、步长为1、到k结束的数字序列,即i ,i+1, i+2, . . . , k .
如果i>k,MATLAB则返回一个空矩阵,也就是[ ].数字i和k不必
是整数,该序列的最后一个数是小于或等于k.
i : j : k创建从i开始、步长为j、到k结束的数字序列,即i, i+j, i+ 2j, . . .,
k .对于j= 0,则返回一个空矩阵.数字i、j和k不必是整数,该序
列的最后一个数是小于或等于k.
linspace(a , b)在区间[a, b]上创建一个有1 0 0个元素的向量,这1 0 0个数把整个区间线性分隔.其中a是第一个元素,b是最后一个.
linspace(a, b, n)在区间[a, b]上创建一个有n个元素的向量.这个命令和
冒号表示形式相近,但是它直接定义了数据的个数,其步长
为(b-a)/(n-1) .
命令集12 定义子阵
A ( i , j )返回矩阵A中第ij元素的值.
A ( : , j )返回矩阵A中第j列列向量.
A ( i , : )返回矩阵A中第i行行向量.
A ( : , j : k )返回由矩阵A中的第j列,第j+ 1列,直到第k列列向量组
成的子阵.
A ( i : k , : )返回由矩阵A中的第i行,第i+ 1行,直到第k行行向量
组成的子阵.
A ( i : k , j : l ) 返回由二维矩阵A 中的第i 行到第k 行行向量和第j 列到
第l 列列向量组成的子阵.
A ( : ) 将矩阵A 中的每列合并成一个长的列向量.
A(j:k) 返回一个行向量,其中的元素为A ( : )中的从第j 个元素到
第k 个元素.
A([j1 j2 . . . ] ) 返回一个行向量,其中的元素为A ( : )中的第j1、j2 元素. A(:,[j1 j2 . . .] ) 返回矩阵A 的第j1列、第j2列等的列向量.
A([i1 i2. . . ] : , ) 返回矩阵A 的第i1行、第i2行等的行向量. A([i1 i2. . . ] , [j1 j2. . . ] ) 返回矩阵第i1行、第i2行等和第j1列、
第j2列等的元素.
二、矩阵元素的增减
在MATLAB 中可以通过增加元素、行和列将一个矩阵或者向量进行扩展.由于MATLAB 可以自动地改变矩阵的大小,所以使用已存在的矩阵的一部分来创建一个新矩阵是很容易的这在许多应用中都很有用.从已存在的矩阵中建立一个矩阵就和定义一个新矩阵一样.元素用空格或逗号分隔,行用分号或回车分隔. ■ 例1 假设下列矩阵已经定义为:
()()125611,,,,13143412A B x y z ⎛⎫⎛⎫⎛⎫= = =9 10 = = ⎪ ⎪ ⎪ 7 8⎝⎭⎝⎭⎝⎭
(a) 有几种方式可以将向量x 扩展成1×4.假设想要的新向量是:
xnew=(9 10 0 5)
下列的三种方法都可以给出想要的结果:
① xnew=x; xnew(3)=0;xnew(4)=5; ② xnew=[x 0 5]; ③ t=[0 5]; xnew=[x t];