本次我们将讲到Matlab的矩阵的相关操作。
矩阵的构建
矩阵的大小和结构的改变
矩阵下标的引用
矩阵信息的获取
下面我们来详细的谈谈相关内容。
- 矩阵的构建
矩阵构建函数如下表:
函数名称
函数功能
ones(n)
构建一个n*n的1矩阵
ones(m,n,…,p)
构建一个m*n*…*p的1矩阵
ones(size(A))
构建一个和 A 同样大小的1矩阵
zeros(n)
构建一个n*n的 0矩阵
zeros(m,n,…,p)
构建一个m*n*…*p的0矩阵
zeros(size(A))
构建一个和 A 同样大小的0矩阵
eye(n)
构建一个n*n的单位矩阵
eye(m,n)
构建一个m*n的单位矩阵
eye(size(A))
构建一个和 A 同样大小的单位矩阵
magic(n)
构建一个n*n矩阵,每一行每一列加起来都相等
rand(n)
构建一个n*n矩阵,0~1之间的数值随机分布
diag(x)
构建一个n维矩阵,主对角线元素取自x,其余元素都是0
triu(A)
构建一个上三角形矩阵,主对角线元素和A 相等,其余元素都是0
triu(A,k)
构建一个上三角形矩阵,第k条对角线元素一以上元素和A 相等,其余元素都是0
tril(A)
构建一个下三角形矩阵,主对角线元素和A 相等,其余元素都是0
tril(A,k)
构建一个下三角形矩阵,第k条对角线元素一以下元素和A 相等,其余元素都是0
建立简单的矩阵,注意“;”和“‘,”的区别
%创建二维矩阵
matrix_A=[1,2,3;4,5,6]
%创建行向量
matrix_B=[1,2,3,4,5,6]
%创建列向量
matrix_C=[1;2;3;4;5;6]
%创建空矩阵
matrix_D=[]
- 矩阵的大小和结构的改变
这里介绍一下排序和旋转,如下表:
函数名称
函数功能
fliplr(A)
函数每一行均进行逆序排列
flipud(A)
函数每一列均进行逆序排列
rot90(A)
生成一个矩阵A逆时针转90°的新矩阵
rot90(A,k)
生成一个矩阵A逆时针转90°*k的新矩阵
sort(A)
对矩阵的每一行进行升序排列
sort(A,dim,mode)
当dim==1时,对每一列排列,dim==0时对每一行排列;当mode=’ascend’时,升序,mode=’descend’为降序排列。
- 矩阵下标的引用
矩阵的索引表达式如下表:
索引表达式
函数功能
A(1)
将二维矩阵A重组为一位数组,樊慧苏组中第一个元素。
A(:,j)
返回二维矩阵中第j列列向量
A(i,:)
返回二维数组中第行行向量
A(:,j:k)
返回二维矩阵中第j列到第k列的列向量组成的子矩阵
A(i:k,j)
返回二维矩阵中第i行到第k行的列向量组成的子矩阵
A(:)
将矩阵合并成一个长的列向量
A(j:k)
返回A(:)中第j个元素到第k个元素。
- 矩阵信息的获取
矩阵结构测试函数
isempty(A):判断矩阵是否为空
矩阵大小获取函数
函数
调用格式
描述
ndims
n=ndims(X)
获取函数的维数
size
[m,n]=size(X)
获取矩阵各维上的长度
length
n=length(X)
获取矩阵最长维的长度
numel
n=numel(X)
获取矩阵元素的个数
矩阵数据类型函数
函数名称
函数功能
isnumeric
检测矩阵元素是否为数值型变量
isreal
检测矩阵元素是否为实数型变量
isfloat
检测矩阵元素是否为浮点型变量
isinteger
检测矩阵元素是否为整数型变量
ischar
检测矩阵元素是否为字符型变量
PS:虽然看着模糊,上机一试便会了。