• 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
  • 相关阅读:
    java最新工作流引擎Activiti7管理流程创建申请经理审核财务审核结案
    Activivi7使用步骤
    mysql数据存放的位置在哪
    关于JWT 和Token(转)
    golang go get 时提示 no Go files in xxx
    golang中的URL 的编码和解码(转)
    什么是 .gitkeep ?
    golang gin 框架读取无法用 body 传递的表单参数
    Goland 开启文件保存自动进行格式化 的两种方式
    golang 接口变量的赋值和方法的调用
  • 原文地址:https://www.cnblogs.com/llguanli/p/7291176.html
Copyright © 2020-2023  润新知