文档介绍:矩阵及其运算
0、一般矩阵的输入
直接输入需遵循以下基本规则:
整个矩阵应以“[ ]”为首尾,即整个输入矩阵必须包含在方括号中;
矩阵中,行与行之间必须用分号“;”或 Enter 键( 按 Enter 键)符分隔;
每行中的元素用逗号“,”或空格分隔;
A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16]
 A =  1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
一、特殊矩阵的实现
:所有元素值为零的矩阵称为零矩阵。零矩阵可以用zeros函数实现。zeros是MATLAB内部函数,使用格式如下:
zeros(m):产生m m阶零矩阵;
zeros(m,n):产生m n阶零矩阵,当m=n时等同于zeros(m);
zeros(size(A)):产生与矩阵A同样大小的零矩阵。
一、特殊矩阵的实现
常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵、三角形矩阵等,这类特殊矩阵在线性代数中具有通用性;还有一类特殊矩阵在专门学科中有用,如有名的希尔伯特(Hilbert)矩阵、范德蒙(Vandermonde) 矩阵等。
:所有元素值为1的矩阵称为幺矩阵。幺矩阵可以用ones函数实现。它的调用格式与zeros函数一样。
【例1】试用ones分别建立32阶幺矩阵、和与前例矩阵A同样大小的幺矩阵。
用ones(3,2) 建立一个3 2阶幺阵:
ones(3,2) % 一个32阶幺阵
ans =1 1
1 1
1 1
一、特殊矩阵的实现
:主对角线的元素值为1、其余元素值为0的矩阵称为单位矩阵。它可以用MATLAB内部函数eye建立,使用格式与zeros相同。
:主对角线的元素值为一常数d、其余元素值为0的矩阵称为数量矩阵。显然,当d=1时,即为单位矩阵,故数量矩阵可以用eye(m)*d或eye(m,n)*d建立。
一、特殊矩阵的实现
:对角线的元素值为常数、其余元素值为0的矩阵称为对角阵。我们可以通过MATLAB内部函数diag,利用一个向量构成对角阵;或从矩阵中提取某对角线构成一个向量。使用
格式为diag(V)和diag(V,k)两种。
设V为具有m个元素的向量,diag(V)将产生一个mm阶对角阵,其主对角线的元素值即为向量的元素值;diag(V,k)将产生一个nn(n=m+|k|,k为一整数)阶对角阵,其第k条对角线的元素值即为向量的元素值。注意:当k>0,则该对角线位于主对角线的上方第k条;当k<0,该对角线位于主对角线的下方第|k|条;当k=0,则等同于diag(V)。用diag建立的对角阵必是方阵。
一、特殊矩阵的实现
【例2】已知向量v,试建立以向量v作为主对角线的对角阵A;建立分别以向量v作为主对角线两侧的对角线的对角阵B和C。
MATLAB程序如下:
v =[1;2;3]; % 建立一个已知的向量A
A=diag(v)
A= 1 0 0
0 2 0
0 0 3
B=diag(v,1)
B = 0 1 0 0
0 0 2 0
0 0 0 3
0 0 0 0
C=diag(v,-1)
C = 0 0 0 0
1 0 0 0
0 2 0 0
0 0 3 0
% 按各种对角线情况构成相应的对角阵A、B和C
一、特殊矩阵的实现
我们也可以用diag从矩阵中提取某对角线构成一个向量。设A为m n阶矩阵,diag(A)将从矩阵A中提取其主对角线产生一个具有min(m,n)个元素的向量。diag(A,k)的功能是:
当k>0,则将从矩阵A中提取位于主对角线的上方第k条对角线构成一个具有n-k个元素的向量;当k<0,则将从矩阵A中提取位于主对角线的下方第|k|条对角线构成一个具有m+k个元素的向量;当k=0,则等同于diag(A)。
一、特殊矩阵的实现
【例3】已知矩阵A,试从矩阵A分别提取主对角线及它两侧的对角线构成向量B、C和D。
MATLAB程序如下:
A=[1 2 3;4 5 6]; % 建立一个已知的23阶矩阵A
% 按各种对角线情况构成向量B、C和D
B=diag(A)
B = 1
5
C=diag(A,1)
C = 2
6
D=diag(A,-1)
D = 4
一、特殊矩阵的实现