MATLAB矩阵操作基础

一、创建矩阵

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


三、矩阵下标

矩阵的索引分为双下标索引和单下标索引两种。


  • 双下标索引与java中的数组索引是一个意思。A(2,3)就是表示第二行第三列的元素。
  • 单下标索引是按列来计数的元素的位置,比如A是一个3*4的矩阵,那么A(7)就表示矩阵A中第一行第三列的元素。由于7=2*3+1。前两列加上第三列的第一个元素。

以下是一些矩阵下标操作的函数。


函数名称函数功能
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
     
      


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空