矩阵的构建方式有两种,一种与单元数组相似,可以直接对变量进行赋值;另一种是MATLAB中提供构建特殊矩阵的指令,如下所示。
函数名称 | 函数功能 |
ones(n) | 构建一个n✖n的1矩阵(矩阵元素全部是1) |
ones(m,n,..,p) | 建构一个m✖n✖p的1矩阵 |
ones(size(A)) | 构建一个和矩阵A同样大小的1矩阵 |
zeros(n) | 构建一个n✖n的0矩阵(输出矩阵的元素全部是0) |
zeros(m,n,...,p) | 构建一个m✖n✖p的0矩阵 |
zeros(size(A)) | 构建一个和矩阵A同样大小的0矩阵 |
eye(n) | 构建一个n✖n的单位矩阵 |
eys(m,n) | 构建一个m✖n的单位矩阵 |
eye(size(A)) | 构建一个和矩阵A同样大小的单位矩阵 |
magic(n) | 构建一个n✖n的矩阵,其每一行、每一列的元素和相等 |
rand(n) | 构建一个n✖n的矩阵,其元素为0~1之间均匀分布的随机数 |
rand(m,n,...,p) | 构建一个m✖n✖p的矩阵,其元素为0~1之间均匀分布的随机数 |
randn(n) | 构建一个n✖n的矩阵,其元素为零均值、单位方差的正态分布随机数 |
randn(m,n,...,p) | 构建一个m✖n✖p的矩阵,其元素为零均值、单位方差的正态分布随机数 |
diag(x) | 构建一个n维的方阵,它的主对角线元素值取自向量x,其余元素值都为0 |
diag(A,k) | 构建一个由矩阵A第k条对角线元素组成的列向量,k=0为主对角线;k<0为下第k条对角线;k>0为上第k条对角线 |
diag(x,k) | 构建一个(n+|k|)✖(n+|k|)维的矩阵,该矩阵的第k条对角线元素取自向量x,其余元素都为0,(关于参数k,参考上个命令) |
triu(A) | 构建一个和A大小相同的上三角矩阵,该矩阵主对角线上元素为A中相应元素,其余元素都为0 |
triu(A,k) | 构建一个和A大小相同的上三角矩阵,该矩阵的第k条对角线上元素为A中相应元素,其余元素都为0 |
tril(A) | 构建一个和A大小相同的下三角矩阵,该矩阵主对角线上元素为A相应元素,其余元素都为0 |
tril(A,k) | 构建一个和A大小相同的下三角矩阵,该矩阵的第k条对角线上元素为A中相应元素,其余元素都为0 |
1、建立简单矩阵
简单矩阵采用矩阵构造符号——方括号“[]”,将矩阵元素置于方括号内,同行元素之间用空格或逗号隔开,行与行之间用分号“;”隔开。
2、建立特殊矩阵
特殊矩阵是指非零元素或零元素的分布有一定规律,常见的有对称矩阵、三角矩阵和对角矩阵等。
3、向量、标量和空矩阵
通常情况下,矩阵包含m行和n列,即m✖n。当m和n取一些特殊值时,得到的矩阵具有一些特殊的性质。
1)向量
当m=1或n=1,即1✖n或m✖1时,建立的矩阵称为向量。
2)标量
当m=n=1时,建立的矩阵称为标量。任意以1✖1的矩阵形式表示的单个实数、复数都是标量。
单个实数或者复数在MATLAB中都是以矩阵的形式存储的;在MATLAB中,单个数据或由单个数据构造的矩阵都是标量。
3)空矩阵
当m=n=0,或者m=0,或者n=0,即0✖0、0✖n、m✖0时,创建的矩阵称为空矩阵。空矩阵可以通过赋值语句建立。
空矩阵与0矩阵的本质区别在于:空矩阵内没有任何元素,因此不占用任何存储空间;而0矩阵表示该矩阵中所有元素全部为0,需要占用一定的存储空间。