Matlab矩阵大全

    科技2023-11-06  79

    最近的项目需要一些矩阵的语法,现汇总如下(后续有时间的话,会继续补充):


                             目录

    1.矩阵下标引用

    2.矩阵合并

    3、矩阵运算(加、减、乘、除、点乘、点除等)

    4.Matlab平台提供了大量的常用的运算函数

    5.生成对角矩阵的基本用法 

    6、生成三对角线上元素相同的矩阵

    7.m行n列的元素都为0的矩阵



    1.矩阵下标引用

    表达式(Matlab程序)  函数功能A(1)将二维矩阵A重组为一维数组,返回数组中第一个元素A(: , j)返回二维矩阵A中第 j 列 列向量A( i , :)返回二维矩阵A中第 i 行 行向量A(: , j : k)返回二维矩阵A中第 j 列到第 k列 列向量组成的子矩阵A( i : k , :)返回二维矩阵A中第 i 行到第 k行 行向量组成的子矩阵A( i : k , j : m)

    返回二维矩阵A中第 i 行到第 k 行 行向量

    和第 j 列到第 m 列 列向量的交集组成的子矩阵

    A(:)将二维矩阵A中得每列合并成一个列向量A( j : k)返回一个行向量,其元素为A(:)中的第 j 个元素到第 k 个元素A([ j1 j2…])返回一个行向量,其元素为A(:)中的第 j1,j2…个元素A(: , [ j1 j2 …])返回矩阵A的第 j1 列、第 j2 列等的列向量A([ i1 i2 …] : ,)返回矩阵A的第 i1 行、第 i2 行等的行向量A([ i1 i2 …] , [ j1 j2 …])返回矩阵A的第 j1列、第 j2 列等和矩阵A的第 i1 行、第 i2 行等的元素

    下面将常用的几个举例说明:

    例如:

    A=[1  2 3  4  5;    12 12 14 56 657;    23 46 34 67 56 ];

    (1)将二维矩阵A转化成一维矩阵(列向量):Matlab 默认将其转化成列向量,需要行向量转置即可。

     Matlab程序:  

    A(:)  %将二维矩阵其转化成列向量

    (2)读取矩阵取前N行或N列的方法

             Matlab程序:

    A(1:2,:)  %读取矩阵A前2行 A(:,1:3)  %读取矩阵A前3列

    (3)求矩阵中每行或每列的最大值和最小值

             ① 找矩阵A每列的最大值:

    [max_A,index]=max(A,[],1); 其中,max_A是最大的数值,index是最大的数值所处的位置

            ② 找矩阵A每行的最大值:

    [max_A,index]=max(A,[],2); 其中,max_A是最大的数值,index是最大的数值所处的位置

           同理可求出每行,每列的最小值。

           ③ 找矩阵A每列的最小值:

    [min_A,index]=min(A,[],1); 其中,min_A是最小的数值,index是最小的数值所处的位置

          ④ 找矩阵A每行的最小值:

    [min_A,index]=min(A,[],2); 其中,min_A是最小的数值,index是最小的数值所处的位置

    2.矩阵合并

    已知矩阵:

    A=[1   2  3  4  5;    12 12 14 56 657;    23 46 34 67 56]; B=[1 1 1 1 1;    2 2 2 2 2;    3 3 3 3 3];

    (1)矩阵A,B左右合并:

    horzcat(A,B); %矩阵A,B左右合并

    (2)矩阵A,B上下合并:

    vertcat(A,B); %矩阵A,B上下合并

    3、矩阵运算(加、减、乘、除、点乘、点除等)

    (1)A+B; 表示矩阵A和矩阵B相加(各个元素对应相加); (2)A-B; 表示矩阵A和矩阵B相减(各个元素对应相减); (3)A*B; 表示矩阵A和矩阵B相乘; (4)A.*B; 表示矩阵A和矩阵B对应元素相乘(点乘); (5)A/B; 表示矩阵A与矩阵B相除法; (6)A./B; 表示矩阵A和矩阵B对应元素相除(点除); (7)A^B; 表示矩阵A的B次幂; (8)A.^B; 表示矩阵A的每个元素的B次幂。

    4.Matlab平台提供了大量的常用的运算函数

      函数 运算法则exp(x)求以e为底数的x次幂log(x)求以e为底数对x值取对数Log10(x)求以10为底数x值取对数sqrt(x)求x的平方根sin(x)正弦函数cos(x)余弦函数tan(x)正切函数asin(x)反正弦函数acos(x)反余弦函数atan(x)反正切函数mode(a,b)a与b相除取余数min(a,b)返回a, b中较小的数值max(a,b)返回a, b中较大的数值mean(x)求x的列平均数(列平均)median(x)求x的列中位数(列中位数)sum(x)x中各个列之间的元素求和rank(x)X矩阵的秩

    5.生成对角矩阵的基本用法 

    (1)diag(a)  使用diag(a)命令生成对角矩阵,a为某个向量,如下所示: 

    A=diag([1 2 3])

    (2)diag(a,i)  使用diag(a,i)命令生成,a为某个向量,i为a向量相对主对角线偏移的列数(向上为正,向下为负)。当i=0时,可以直接写成diag(a)。具体情况如下: 

    A=diag([1 2 3],1)

    A=diag([1 2 3],-1)

    6、生成三对角线上元素相同的矩阵

    (1)生成全为1的向量如下:

    a(1:3,1)=1 

    a=repmat([1],3,1) 

    注意:a=repmat(A,m,n)是用A矩阵铺成m*n块且每一块都是A的矩阵,如下:

    >> A=[1,2;3,4]; >> a=repmat(A,2,3)

    ones(3,1) 

    (2)生成对角线上元素相同的矩阵 

    A=diag(repmat([1],1,5))+diag(repmat([2],1,4),1)+diag(repmat([3],1,4),-1)

    7.m行n列的元素都为0的矩阵

    A=zeros(3,2)


    后续继续补充。。。。

     

     

     

    Processed: 0.015, SQL: 8