一、创建矩阵
1、通过直接赋值创建矩阵
将矩阵元素置于[]中。同行元素之间用空格或“。”分开。行与行之间用“;”隔开。
>> a=[1,2,3;4,5,6;,7,8,9]
a =
1 2 3
4 5 6
7 8 9
2、通过特殊的函数进行创建
函数名称 | 函数功能 |
---|---|
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相同大小的单位矩阵 |
rand(n) | 构建一个n*n矩阵,其元素在0~1之间均匀分布 |
rand(m,n…p) | 构建一个m*n*…*p的矩阵,其元素在0~1之间均匀分布 |
triu(A) | 构建一个和A大小相同的上三角矩阵,主对角线上的元素为A中对应元素,其余为0 |
tril(A) | 构建一个和A大小相同的下三角矩阵,主对角线上的元素为A中对应元素,其余为0 |
>> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> tril(A)
ans =
1 0 0
4 5 0
7 8 9
二、改变矩阵结构
Matlab提供了一些函数来实现矩阵的变换。
函数名称 | 函数功能 |
---|---|
fliplr | 矩阵每一行均进行逆序排序 |
flipud | 矩阵每一行均进行升序排序 |
rot90(A) | 矩阵A逆时针旋转90而得到新的矩阵 |
rot90(A,k) | 矩阵A逆时针旋转k*90而得到新的矩阵 |
repmat(x,[m,n,,,p]) | 创建一个m*n*…*p维的矩阵,全部的元素均为x |
sort(A) | 对矩阵A升序排序并返回排序后的矩阵。当A为二维矩阵时。分别对每一列进行排序 |
sort(A,dim) | 对矩阵A升序排序并返回排序后的矩阵。当dim为1时,分别对每一列进行排序;当dim为2时,对每一行进行排序 |
sort(A,dim,mode) | mode为‘ascend’时,进行升序排序;mode为descend时为降序排序 |
>> A=[1,2,3;-1,1,0;4,5,6]
A =
1 2 3
-1 1 0
4 5 6
>> sort(A)
ans =
-1 1 0
1 2 3
4 5 6
三、矩阵下标
矩阵的索引分为双下标索引和单下标索引两种。
以下是一些矩阵下标操作的函数。
函数名称 | 函数功能 |
---|---|
A(:,j) | 返回二维矩阵中第j列列向量 |
A(i,:) | 返回二维矩阵中第i行行向量 |
A(:,j:k) | 返回二维矩阵A中第j列到第k列列向量组成的子阵 |
A(i:k,:) | 返回二维矩阵A中第i行到第k行行向量组成的子阵 |
A(:) | 将矩阵中的每一列合并成一个长的列向量 |
四、矩阵信息
1、获取矩阵的元素个数
>> A
A =
1 2 3
-1 1 0
4 5 6
>> numel(A)
ans =
9
2、获取矩阵各维度的长度
>> size(A)
ans =
3 3
3、获取矩阵维数
>> ndims(A)
ans =
2
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删