本次我们将讲到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:虽然看着模糊,上机一试便会了。