【这小文章绝了!】一文看穿,MATLAB | 数组与矩阵超详细入门进阶必须看

news2024/11/24 3:46:36

目录

介绍

一、数组的创建和操作

通过 : 创建一维数组

通过logspace函数创建一维数组

通过linspace函数创建一维数组

二、数组的运算

数组的关系运算

数组的逻辑运算

三、矩阵

矩阵的构造

矩阵的下标引用

矩阵大小

四、矩阵元素的运算

矩阵的差分

矩阵运算

矩阵分析

矩阵分解


福利:文末有MATLAB全套资料哦

介绍

可以说,数组运算是 MATLAB 计算的基础,而数值数组是 MATLAB 最重要的一种内建数据类型。矩阵本身就是特殊的数组,MATLAB 本意就是矩阵实验室,可见数组与矩阵的重要性。

一、数组的创建和操作

数组中同一行的元素使用逗号 , 或者空格进行分隔,不同行之间用分号 ;进行分隔。

  1. >> A = [6 5 4 3 2 1]
    
    A = 6 5 4 3 2 1
    
    >> B = [6, 5, 4, 3, 2, 1]
    
    B = 6 5 4 3 2 1
    
    >> C = [6;5;4;3;2;1]
    
    C =
    
        6
    
        5
    
        4
    
        3
    
        2
    
        1
    
    >> D = B' % 转置
    
    D =
    
        6
    
        5
    
        4
    
        3
    
        2
    
        1

需要注意的是,访问数组元素使用的是小括号 (),而不是大多数编程语言所使用的 []。除此之外, MATLAB 数组下标是从1开始的,也允许传入一个下标列表,实现多个元素的查询和修改。(这点上和Julia是一致的):

 
  1. >> A = [6 5 4 3 2 1]
    
    A = 6 5 4 3 2 1
    
    >> A(3) = 0
    
    A = 6 5 0 3 2 1
    
    >> A([1 4]) = [1 1]
    
    A = 1 5 0 1 2 1

通过 : 创建一维数组

在 MATLAB 中,可以通过 : 创建一维数组 X=A:step:B,其中, A 是创建一维数组的第一个变量, step 是每次递增或递减的数值,直到最后一个元素和 B 的差的绝对值小于等于 step 的绝对值。如果没有指定 step,则默认会以一个单位长度进行增加。

 
  1. >> 2:6
    
    ans = 2 3 4 5 6
    
    >> 2.1:1.5:6
    
    ans = 2.1000 3.6000 5.1000
    
    >> 2.1:6
    
    ans = 2.1000 3.1000 4.1000 5.1000
    
    >> 2.1:-1.5:-6
    
    ans = 2.1000 0.6000 -0.9000 -2.4000 -3.9000 -5.4000

通过logspace函数创建一维数组

  • y=logspace(a,b): 创建行向量 y,第一个元素是 10^a,最后一个元素是 10^b,形成总数为 50 个元素的等比数列。

  • y=logspace(a,b,n): 该函数创建行向量 y,第一个元素是 10^a,最后一个元素是 10^b,形成总数为 n 个元素的等比数列

 
  1. >> A = logspace(1, 2, 10)
    
    A = 10.0000 12.9155 16.6810 21.5443 27.8256 35.9381 46.4159 59.9484 77.4264 100.0000

通过linspace函数创建一维数组

  • y=linspace(a,b): 创建行向量 y,第一个元素是 a,最后一个元素是 b,形成总数为 100 个元素的线性间隔向量(等差数列)。

  • y=logspace(a,b,n): 该函数创建行向量 y,第一个元素是 a,最后一个元素是 b,形成总数为 n 个元素的线性间隔向量(等差数列)

 
  1. >> A = linspace(1, 100)
    
    A =
    
     1 至 21 列
    
        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
    
     22 至 42 列
    
       22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
    
     43 至 63 列
    
       43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
    
     64 至 84 列
    
       64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
    
     85 至 100 列
    
       85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
    
    >> B = linspace(1, 36, 1)
    
    B =
    
       36

二、数组的运算

数组的运算是从数组这一整个元素出发,对其中的每一个元素进行的运算。基本运算包括加、减、乘、左除、右除和乘方。

 
  1. >> A = [1 5 6 8 9 6]
    
    A = 1 5 6 8 9 6
    
    >> B = [9 85 6 2 4 0]
    
    B = 9 85 6 2 4 0
    
    >> C = [1 1 1 1 1]
    
    C = 1 1 1 1 1
    
    >> D = A + B
    
    D = 10 90 12 10 13 6
    
    >> E = A - B
    
    E = -8 -80 0 6 5 6
    
    >> F = A * 2
    
    F = 2 10 12 16 18 12
    
    >> G = A + 3
    
    G = 4 8 9 11 12 9
    
    >> H = A - G
    
    H = -3 -3 -3 -3 -3 -3

需要注意的是,数组的乘法不同于矩阵的乘法。它要求 A 和 B 的维度相同,运算为数组对应元素的乘法运算,计算结果是与 A 和 B相同维度的数组。自然地,对于除法,则对应的元素进行相除。

 
  1. >> A = [1 2 3]
    
    A = 1 2 3
    
    >> B = [2 3 4]
    
    B = 2 3 4
    
    >> C = A .* B % 数组的点乘
    
    C = 2 6 12
    
    >> D = A * 3 % 数组与常数的乘法
    
    D = 3 6 9

数组除法:

 
  1. >> A = [1 2 3]
    
    A = 1 2 3
    
    >> B = [2 3 4]
    
    B = 2 3 4
    
    >> A ./ B % 左除
    
    ans = 0.5000 0.6667 0.7500
    
    >> A .\ B % 右除,等价于 B ./ A
    
    ans = 2.0000 1.5000 1.3333
    
    >> B / 2
    
    ans = 1.0000 1.5000 2.0000

数组的乘方:

 
  1. >> A = [1 2 3 4]
    
    A = 1 2 3 4
    
    >> B = [1 2 3 4]
    
    B = 1 2 3 4
    
    >> C = A .^ B % 数组的乘方
    
    C = 1 4 27 256
    
    >> D = 3 .^ A % 常数与数组的乘方
    
    D = 3 9 27 81

通过函数 dot() 可实现数组的点积运算,但是运算规则要求数组 A 和 B 的维度相同,调用格式:

  • C=dot(A,B)

  • C=dot(A,B,dim)

 
  1. >> A = [1 2 3 4]
    
    A = 1 2 3 4
    
    >> B = [1 2 3 4]
    
    B = 1 2 3 4
    
    >> dot(A, B)
    
    ans = 30

数组的关系运算

MATLAB 提供 6 种数组关系运算符,即 <(小于)、 <=(小于等于)、 >(大于)、 >=(大于等于)、 ==(恒等于)、 ~=(不等于)。 运算规则:

  • 标量之间直接比较大小,关系成立,返回1,否则返回0。

  • 比较量是维度相等的数组时,逐一比较相同位置的元素,并给出比较结果。最终结果是一个与参与比较的数组维数相同的数组,其组成元素为 0 或 1。

 
  1. >> A = [1 2 3 4 5]
    
    A = 1 2 3 4 5
    
    >> B = [0 2 3 4 5]
    
    B = 0 2 3 4 5
    
    >> A > B
    
    ans =
    
     1×5 logical 数组
    
      1 0 0 0 0
    
    >> A >= 3
    
    ans =
    
     1×5 logical 数组
    
      0 0 1 1 1

数组的逻辑运算

MATLAB 中数组提供了3种逻辑运算符: &(与)、 |(或)和 ~(非)。如果是非零元素则为真,用1表示。零元素则为假,用0表示。

 
  1. >> A = [1 2 3 4 5 6]
    
    A = 1 2 3 4 5 6
    
    >> B = [0 1 2 3 4 5]
    
    B = 0 1 2 3 4 5
    
    >> A & B
    
    ans =
    
     1×6 logical 数组
    
      0 1 1 1 1 1
    
    >> A | B
    
    ans =
    
     1×6 logical 数组
    
      1 1 1 1 1 1
    
    >> ~B
    
    ans =
    
     1×6 logical 数组
    
      1 0 0 0 0 0

三、矩阵

矩阵和数组在 MATLAB 中有很多方面的区别,比如:

  • 矩阵是数学上的概念,而数组是计算机程序设计领域的概念;

  • 作为数学上变换或映射算符的体现,矩阵运算有着明确而严格的数学规则。数组运算则是 MATLAB 软件定义的规则,目的是为了使数据管理更加方便。

两种之间的联系是,矩阵是以数组的形式存在的。因此,一维数组相当于向量,二维数组相当于矩阵,换句话说,矩阵是数组的子集

矩阵的构造

矩阵的构造方式有两种,一种与单元数组相似,可以对变量直接进行赋值;另一种是使用预先提供的特殊矩阵的命令。

函数名称函数功能
ones(n)n×n的1矩阵(元素都是1)
zeros(n)n×n的0矩阵(元素都是0)
eye(n)n×n的单位矩阵
eye(m,n)m×n的单位矩阵
rand(n)n×n的矩阵,元素0-1之间均匀分布的随机数
diag(x)主对角线元素取自向量 x,其余元素的值为0
triu(A)构建和A相同的上三角矩阵,主对角线上元素为A中对应元素, 其余为0
tril(A)构建和A相同的下三角矩阵,主对角线上元素为A中对应元素, 其余为0

还有其它的矩阵类型,例如魔方矩阵 magic、帕斯卡矩阵 pascal、范德蒙(Vandermonde)矩阵等等。

 
  1. >> A = ones(3)
    
    A =
    
        1 1 1
    
        1 1 1
    
        1 1 1
    
    >> B = rand(3)
    
    B =
    
       0.8147 0.9134 0.2785
    
       0.9058 0.6324 0.5469
    
       0.1270 0.0975 0.9575
    
    >> C = [1 2 3; 4 5 6; 7 8 9]
    
    C =
    
        1 2 3
    
        4 5 6
    
        7 8 9
    
    >> triu(C)
    
    ans =
    
        1 2 3
    
        0 5 6
    
        0 0 9

矩阵的下标引用

普通的二维数组元素的索引分为双下标索引和单下标索引。双下标索引索引通过一个二元数组来对应元素在矩阵中的行列位置,例如:A(2, 3)表示矩阵A中第2行第3列的元素。单下标索引的方式是采用列元素优先的原则,对 m 行 n 列的矩阵按列排序进行重组,例如在3×3的矩阵中,A(5)表示第3行第2列的元素。

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

矩阵结构测试:

名称功能
isempty(A)检测矩阵是否为空
isscalar(A)检测矩阵是否是单元素的标量矩阵
isvector(A)检测矩阵是否只具有一行或一列元素的一维向量
issparse(A)检测数组是否是稀疏矩阵
 
  1. >> A = magic(3)
    
    A =
    
        8 1 6
    
        3 5 7
    
        4 9 2
    
    >> A(5)
    
    ans = 5
    
    >> B = [1]
    
    B = 1
    
    >> isempty(B)
    
    ans =
    
     logical
    
      0
    
    >> isscalar(B)
    
    ans =
    
     logical
    
      1

矩阵大小

矩阵的大小通常包含以下几个方面的内容:维数、各个维的长度、矩阵元素的个数。为此,MATLAB 提供了4个函数,分别用于获取矩阵形状的相关信息。

调用格式功能
n=ndims(X)获取矩阵的数量
[m,n]=size(X)获取矩阵在各个维度上的长度
n=length(X)获取矩阵最长维的长度
n=numel(X)获取矩阵元素的个数
 
  1. >> A = eye(5, 3)
    
    A =
    
        1 0 0
    
        0 1 0
    
        0 0 1
    
        0 0 0
    
        0 0 0
    
    >> ndims(A)
    
    ans = 2
    
    >> length(A)
    
    ans = 5
    
    >> numel(A)
    
    ans = 15

优化 MATLAB 代码的其中一个关键点就是要了解矩阵的内存使用情况。可以使用 whos 查看当前工作区中指定变量的所有信息,包括变量名、矩阵大小、内存占用和数据类型等等。

 
  1. >> m = rand(2)
    
    m =
    
       0.9649 0.9706
    
       0.1576 0.9572
    
    >> whos m
    
     Name Size Bytes Class Attributes
    
     m 2x2 32 double

四、矩阵元素的运算

使用矩阵运算,需要遵循数学上对矩阵的定义。例如矩阵的加法和减法运算的前提是参与运算的两个矩阵或多个矩阵必须具有相同的行数和列数

满足:交换律A+B=B+A、结合律A+(B+C)=(A+B)+C、存在零元A+0=0+A=A、存在负元A+(-A)=(-A)+A

矩阵乘法运算包括数与矩阵的乘法、矩阵与矩阵的乘法。矩阵与矩阵的乘法必须满足被乘矩阵的列数与乘矩阵的行数相等。除此之外,矩阵之间的乘法不遵循交换律,但是满足以下的运算律:

  • 结合律:(A×B)×C=A×(B×C)

  • 左分配律:A×(B+C)=A×B+A×C

  • 右分配律:(B+C)×A=B×A+C×A

  • 单位矩阵的存在性:E×A=A, A×E=A

矩阵除法是乘法的逆运算,分为左除和右除两种。使用运算符号 \ 和 / 表示。对于一般的二维矩阵 A 和 B,当进行A\B运算时,要求 A 的行数与 B 的行数相等;当进行A/B运算时,要求AB的列数相等。

 
  1. >> A = [1 2; 1 3];
    
    >> B = [1 0; 1 2];
    
    >> C = A / B
    
    C =
    
            0 1.0000
    
      -0.5000 1.5000
    
    >> D = A\B
    
    D =
    
        1 -4
    
        0 2
    
    >> C * B
    
    ans =
    
        1 2
    
        1 3
    
    >> A * D
    
    ans =
    
        1 0
    
        1 2

矩阵为方阵时,可以进行矩阵的幂运算,MATLAB 使用 ^ 表示幂运算:

 
  1. >> A = magic(3)
    
    A =
    
        8 1 6
    
        3 5 7
    
        4 9 2
    
    >> A2 = A^2
    
    A2 =
    
       91 67 67
    
       67 91 67
    
       67 67 91

矩阵的差分

diff() 作用是计算矩阵的差分。简而言之,将矩阵中,上一行(列)与下一行(列)的差值,依次排列在上一行(列)的对应所在位置。

  • Y=diff(X,n):计算矩阵各列元素的n阶差分。

  • Y=diff(X,n,dim):计算矩阵在给定的维数 dim 上元素的 n 差分。当 dim=1时,计算矩阵各列元素的差分。当 dim=2 时,计算矩阵各行元素的差分。

 
  1. >> A = magic(3)
    
    A =
    
        8 1 6
    
        3 5 7
    
        4 9 2
    
    >> B = diff(A)
    
    B =
    
       -5 4 1
    
        1 4 -5
    
    >> C = diff(A, 2)
    
    C =
    
        6 0 -6
    
    >> D = diff(A, 1, 2)
    
    D =
    
       -7 5
    
        2 2
    
        5 -7

矩阵运算

矩阵运算是线性代数中极其重要的部分,包括矩阵分析、特征值求解和奇异值。

矩阵分析

MATLAB 提供的矩阵分析函数如下:

函数名描述
norm求矩阵或者向量的范数
normest估计矩阵的2阶范数
rank矩阵的秩
det矩阵的行列式
trace矩阵的迹,即求对角元素的和
null0空间
orth正交化空间
rref约化行阶梯形式
subspace求两个矩阵空间的角度
 
  1. >> norm(1:6, 2) % 2阶范数
    
    ans = 9.5394
    
    >> normest(1:6)
    
    ans = 9.5394

当矩阵维数比较大时,会导致计算范数的时间比较长,并且当一个近似的范数值满足要求时,可以考虑使用函数 normset() 来估计 2 阶范数值。

 
  1. >> A = [1 2 3; 3 4 5; 7 8 9];
    
    >> B = magic(3);
    
    >> r1 = rank(A)
    
    r1 = 2
    
    >> r2 = rank(B)
    
    r2 = 3
    
    >> det(B)
    
    ans = -360
    
    >> trace(B)
    
    ans = 15
    
    >> Z = null(A)
    
    Z =
    
       0.4082
    
      -0.8165
    
       0.4082

矩阵分解

矩阵分解是把一个矩阵分解成几个“较简单”的矩阵连乘形式,无论在理论上还是工程应用上,矩阵分解都是十分重要的。

名称描述
cholCholesky 分解
choline稀疏矩阵的不完全 Cholesky 分解
lu矩阵 LU 分解
luinc稀疏矩阵的不完全 LU 分解
qr正交三角分解
svd奇异值分解
gsvd一般奇异值分解
schur舒尔分解

示 充电君会在第一时间给你带来最新、最全面的解读,别忘了三联一波哦。  

                                                   

 

关注公众号:资源充电吧
回复:Chat GPT
充电君发你:免费畅享使用中文版哦
点击小卡片关注下,回复:IT

想要的资料全都有 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot进阶(50):Spring Boot如何全局统一处理异常?| 超级详细,建议收藏

1. 前言&#x1f525; 今天和大家讨论的是Spring Boot如何统一处理异常。这里先说一下我们为什么需要全局统一处理异常&#xff1f;其实理由很简单&#xff0c;因为程序在运行的过程中&#xff0c;不可避免会产生各种各样的错误。比如说用户传过来的参数不正确&#xff0c;无法…

4端到端协议-4.2【实验】【计算机网络】

4端到端协议-4.2【实验】【计算机网络】 前言推荐4端到端协议4.2 TCP协议流捕获与TCP协议分析实验目的实验内容及实验环境实验原理实验过程实验过程演示 4.2.1实验章节测验一.单选题&#xff08;共5题,25.0分&#xff09;二.阅读理解&#xff08;共1题,70.0分&#xff09;三.填…

xxl-job核心源码解析

xxl-job源码解析 如何自研一个xxljob 注册服务调度服务RPC组件(基建&#xff0c;底层严重依赖)日志服务告警服务 系统架构 执行流程 各大调度中心对比 1&#xff09;服务端启动流程 首先找到配置类 XxlJobAdminConfig 可以发现该类实现 InitializingBean接口&#xff0c;…

openpose保姆级教程代码详细解析——训练部分

一&#xff1a;前言 OpenPose是一个基于深度学习的人体姿势估计库&#xff0c;它可以从图像或视频中准确地检测和估计人体的关键点和姿势信息。OpenPose的目标是将人体姿势估计变成一个实时、多人、准确的任务。它的原理部分已经在上一篇非常详细的讲解了——本节介绍训…

Dynamic .NET TWAIN 8.3.3 for NetCore Crack

用于 WinForms 和 WPF 应用程序的扫描仪和网络摄像头捕获 SDK 适用于 .NET 应用程序的简单高效的扫描和网络摄像头 SDK Dynamsoft 的 Dynamic .NET TWAIN 是一个基于 TWAIN 和 DirectShow 标准的 .NET 文档成像 SDK。它为扫描仪和网络摄像头软件开发提供了丰富、高效且…

修改依赖包下的子依赖版本,前端项目安全扫描出来的漏洞——解决过程

为什么要升级&#xff0c;如图云桌面&#xff08;相当于堡垒机-远程桌面&#xff09;的项目审查是大概基于node16版本进行扫描的&#xff0c;本来我方是通过降版本从14到12绕过大范围更新&#xff0c;但现在躲得过初一躲不过十五&#xff0c;如何更新 package-lock.json 中的一…

DAY24:二叉树(十四)二叉搜索树中的插入操作+删除二叉搜索树中的节点(二叉树结构修改难点)

文章目录 701.二叉搜索树中的插入操作思路递归法如何保证连接的节点就是空节点的父节点&#xff1f; 迭代法迭代法注意debug测试 450.删除二叉搜索树中的节点&#xff08;坑较多&#xff0c;注意复盘&#xff09;思路最开始的写法debug测试1.使用了释放后的空间ERROR: AddressS…

通知!2023年湖北住建厅七大员新考和继续教育要求有变化了?启程别

通知&#xff01;2023年湖北住建厅七大员新考和继续教育要求有变化了&#xff1f;启程别 湖北住建厅七大员新考以及继续教育的相关要求都即将有一些变化了目前在征集意见的阶段&#xff0c;具体实施等后续具体通知 对于新考的变化主要是&#xff1a; 1.由原先报名之后只需要完成…

Vue中如何进行颜色选择与调色板

Vue中如何进行颜色选择与调色板 颜色选择和调色板是Web开发中常用的功能&#xff0c;它们可以帮助用户选择或调整颜色。Vue作为一个流行的JavaScript框架&#xff0c;提供了一些工具和库&#xff0c;可以方便地实现颜色选择和调色板功能。本文将介绍如何在Vue中进行颜色选择和…

【aspose-words】Aspose.Words for Java模板语法详细剖析

文章目录 前言&#x1f34a;缘由aspose-words模板语法再了解 &#x1f3af;主要目标实现3大重点 &#x1f381;快速链接&#x1f348;猜你想问如何与狗哥联系进行探讨1.关注公众号【JavaDog程序狗】2.踩踩狗哥博客 &#x1f36f;猜你喜欢文章推荐 正文&#x1f34b;aspose-word…

mfc140.dll丢失的解决方法,解析mfc140.dll这个文件

其实大部分人在使用计算机过程中&#xff0c;您可能会遇到mfc140.dll丢失的错误提示。这个错误会导致一些应用程序无法正常运行&#xff0c;那么要如何解决这个问题呢&#xff1f;今天小编就来给大家详细的解析mfc140.dll这个文件以及教大家 mfc140.dll丢失的解决方法。 目录 …

【算法与数据结构】349、LeetCode两个数组的交集

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;使用了一个哈希数组记录nums1出现的数字&#xff0c;然后遍历nums2&#xff0c;找到hash数组为1的值就…

Vue-Element-Admin项目学习笔记(6)Vuex状态管理

前情回顾&#xff1a; vue-element-admin项目学习笔记&#xff08;1&#xff09;安装、配置、启动项目 vue-element-admin项目学习笔记&#xff08;2&#xff09;main.js 文件分析 vue-element-admin项目学习笔记&#xff08;3&#xff09;路由分析一:静态路由 vue-element-adm…

yoloV5目标识别以及跟踪,功能识别动物(大象,犀牛,水牛,斑马)

yolo目标识别以及跟踪还是很强的嘞&#xff01; 一. YOLO V5我来啦 1. 前期准备 yolo V5项目下载 项目的github地址项目的gitee地址 使用git 克隆下来到项目目录下面就好 环境配置 在yolov5的文件下面有一个 requirements.txt文件,这里就是环境依赖的说明。 这里我以 vs…

DP学习之解码方法

DP学习第二篇之解码方法 91. 解码方法 - 力扣&#xff08;LeetCode&#xff09; 一. 题目解析 二. 题解 算法原理及代码 状态表示 tips: 经验题目要求。以i位置为结尾&#xff0c;。。。 dp[i]: 以i位置为结尾时&#xff0c;解码方法的总数 状态转移方程 tips: 用之前或…

5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议

5.3.2 因特网的路由协议&#xff08;二&#xff09;基于距离向量算法的RIP协议 一、RIP协议概念 RIP是Routing Information Protocol缩写&#xff0c;又称为路由信息协议&#xff0c;是最先得到应用的内部网关协议&#xff0c;RIP作为一个常在小型互联网中使用的路由信息协议…

【mmcls】mmdet中使用mmcls的网络及预训练模型

mmcls现在叫mmpretrain&#xff0c;以前叫mmclassification&#xff0c;这里为了统一称为mmcls。在基于MM框架的下游任务&#xff0c;例如检测(mmdetection)中可以使用mmcls中的backbone进行特征提取&#xff0c;但这就需要知道网络的参数以及输出特征的维度。本文简单介绍了在…

CDD诊断数据库的简单介绍

1. 什么是数据库? 数据库是以结构化方式组织的一个数据集合。 比如DBC数据库: Network nodes Display Rx Messages EngineState(0x123) 通过结构化的方式把网络节点Display里Rx报文EngineState(0x123)层层展开。这种方 式的好处是:层次清晰,结构分明,易于查找。 2. 什么…

ERROR: AddressSanitizer: heap-use-after-free on address

内存错误"heap-use-after-free"&#xff0c;这是因为在C中&#xff0c;当使用delete关键字释放对象的内存后&#xff0c;该对象仍然会保留指向已经被释放内存的指针。这个指针称为悬挂指针&#xff08;Dangling Pointer&#xff09;。如果我们试图访问已经被释放的内…

【Linux】15. 文件系统与软硬链接

1. 文件系统的引出 在之前的学习过程当中&#xff0c;我们知道当文件被打开后需要加载进内存&#xff0c;第一步为其创建struct file结构体描述其结构(操作系统需要管理被打开的文件&#xff1a;先描述再组织)&#xff0c;在通过进程当中的文件描述符指针指向文件描述符表&…