目录
一、矩阵的构造
二、矩阵大小及结构的改变
三、矩阵下标的引用
1.矩阵下标访问单个矩阵元
2.线性引用矩阵元
3.访问多个矩阵元素
四、矩阵信息的提取
1.矩阵结构
2.矩阵大小
3.矩阵的数据类型
一、矩阵的构造
矩阵的构建方式有两种,一种与单元数组相似,可以对变量直接进行赋值;另一种是MATLAB中提供构建特殊矩阵的指令,例如
1. 建立简单矩阵
简单矩阵采用矩阵构造符号——方括号“[]”,将矩阵元素置于方括号内,同行元素之间用空格或逗号隔开,行与行之间用分号“;”隔开,格式如下:
示例1:分别构造一个二维矩阵、一个行向量、一个列向量
A=[2,3,5;3,6,10] %使用逗号和分号构造二维矩阵
B=[2 3 5;3 6 10] %使用空格和分号构造二维矩阵
V1=[1,2,3,4] %构造行向量
V2=[1;2;3;4] %构造列向量
运行结果:
2.建立特殊矩阵
特殊矩阵是指非零元素或零元素的分布有一定规律的矩阵,常见的有对称矩阵、三角矩阵和对角矩阵等
示例2:
O=ones(2) %构造2*2的矩阵
Z=zeros(2) %构造2*2的0矩阵
E1=eye(2) %构造2*2的单位矩阵
E2=eye(2,3) %构造2*3的单位矩阵
E3=eye(3,2) %构造3*2的单位矩阵
运行结果:
3.向量、标量和空矩阵
通常情况下,矩阵包含m行和n列,即m×n。当m和n取一些特殊值时,得到的矩阵具有一些特殊的性质。
(1)向量
当m=1或n=1,即1×n或m×1时,建立的矩阵称为向量。
示例3:
a = [1 2 3 4 5 6]
b = [1;2;3;4;5;6]
whos %调用whos函数查看a,b的相关信息
运行结果:
(2)标量。
当m=n=1时,建立的矩阵称为标量。任意以1×1的矩阵形式表示的单个实数、复数都是标量。
示例4:在MATLAB中,标量有两种表示方法
x=10+2i %将复数10+2i赋值给变量x
shape=size(x) %查询变量x的形状信息
y=[10+2i] %将复数10+2i构造的矩阵赋值给变量y
shape=size(y) %查询变量y的形状信息
x==y %判断变量x和变量y是否相等,相等得1,否则为0
运行结果:
注意:单个实数或者复数在MATLAB中都是以矩阵的形式存储的;在MATLAB中,单个数据或由单个数据构造的矩阵都是标量
(3)空矩阵。
当m=n=0,或者m=0,或者n=0,即0×0、0×n、m×0时,创建的矩阵称为空矩阵。空矩阵可以通过赋值语句建立。
示例5:
x=[] %建立一个空矩阵
z=[0 0 0;0 0 0] %建立一个2行3列的0矩阵
whos x z %调用whos函数查看x,z的相关信息
运行结果:
二、矩阵大小及结构的改变
根据运算时的不同情况和需要,矩阵大小和结构的改变,主要的方式有旋转矩阵、改变矩阵维度、删除矩阵元素等。其相关函数有:
三、矩阵下标的引用
1.矩阵下标访问单个矩阵元
常用的矩阵索引表达式:
2.线性引用矩阵元
矩阵中某一元素的单下标索引值和双下标索引值之间,可以通过MATLAB内部函数进行转换,其语法形式为:
其功能为将双下标索引值转换为单下标索引值,其中siz是一个包含两个元素的数组,代表了转换矩阵的行列数,一般可以直接用size(A)表示,i与j分别是双下表索引中的行、列值,IND是转换后的单下标索引值。
其功能为将单下标索引值转换为双下标索引值,各变量意义同上。
示例6:矩阵元素单双下标索引值转换
Matrix = magic( 3 )
IND = sub2ind( size( Matrix ),2,3)
[I J]= ind2sub(size( Matrix ),7)
运行结果:
3.访问多个矩阵元素
在下标表达式里,可以用冒号来表示矩阵的多个元素。例如,A(1:k,j)表示矩阵第j列的前k个元素。利用冒号,第4列元素的和可以用更为简洁的式子,语法格式如下:
还可简便写为:
此外,MATLAB还提供了一个关键字end,用于表示该维中的最后一个元素,所以上式还可以改写成:
实际上还可以用冒号来表示非相邻的多个元素,示例7:
A=1:10
B=A(1:3:10)
运行结果:
四、矩阵信息的提取
1.矩阵结构
矩阵的结构是指矩阵子元素的排列方式。其相关函数有
注意:这类函数的返回值是逻辑类型的数据。返回值为“1”表示该矩阵是某一特定类型的矩阵;返回值为“0”表示该矩阵不是该特定类型的矩阵。
2.矩阵大小
矩阵的形状信息反映了矩阵的大小,通常包括:
- 矩阵的维数。
- 矩阵各维(例如最长维、用户指定的维)的长度
- 矩阵元素的个数
其相关的4个函数为:
示例8:利用eye函数建立一个5×3的矩阵,利用ndims函数获得矩阵A的维数信息
A=eye(5,3)
ndims(A)
运行结果:
3.矩阵的数据类型
矩阵作为MATLAB的内部数据存储和运算结构,其元素可以是各种各样的数据类型,对应不同数据类型的元素,可以是数值、字符串、元胞、结构体等。其相关函数有:
注意:这类函数的返回值也是逻辑类型的数据。返回值为“1”表示是某一特定的数据类型;返回值为“0”表示不是该特定的数据类型
示例9:矩阵元素的数据类型的判断
A=[2 3;10 7]
isnumeric(A)
isfloat(A)
islogical(A)
运行结果: