当前位置: 首页 > news >正文

11-矩阵(matrix)_方阵_对称阵_单位阵_对角阵

矩阵及其运算

[ a 11 ⋯ a 1 n ⋯ ⋯ ⋯ a m 1 ⋯ a m n ] \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \cdots & \cdots & \cdots \\ a_{m1} & \cdots & a_{mn} \\ \end{bmatrix} a11am1a1namn

矩阵就是二维数组,上面是一个 m 乘 n 的矩阵,它有 m 行,n 列,每行每列上面都有一个 元素,每个元素都有行标 i 和列标 j, 对应的元素就是
a i j a_{ij} aij
矩阵是一种常见的数据结构,它由一堆一维数组(也称为行向量)组成。矩阵是二维数组,由行和列构成。通常用于在数学、计算机科学、统计学等领域进行数据处理和表示。

矩阵可以由一堆行向量组成,这种表示方式称为行向量组成的矩阵;也可以由一堆列向量组成,称为列向量组成的矩阵。矩阵的行数表示矩阵的高度,列数表示矩阵的宽度。行向量组成的矩阵是以横向排列的行向量构成,而列向量组成的矩阵是以纵向排列的列向量构成。

例如,下面是一个由行向量组成的矩阵:

[1 2 3]
[4 5 6]
[7 8 9]

下面是一个由列向量组成的矩阵:

[1  4  7]
[2  5  8]
[3  6  9]

矩阵在线性代数、图像处理、神经网络等领域具有广泛的应用。在计算机中,矩阵也是很多数据处理算法的基础,例如矩阵乘法、矩阵转置等操作。

方阵,对称矩阵,单位矩阵,对角线

方阵

下面介绍几种特殊的矩阵,如果 m 等于 n,那就称为方阵
[ 1 0 0 0 2 0 0 0 3 ] \begin{bmatrix} 1 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 3 \\ \end{bmatrix} 100020003

对称矩阵

对称矩阵转置后不会改变原始矩阵的形状和值。
定义是 a i j a_{ij} aij
等于 a j i a_{ji} aji那么就是对称矩阵(沿着主对角线(左上角到右下角划分的线)的元素对称, 这里的对称是主对角线两侧的元素相等),并且肯定是个方阵
[ 1 1 2 1 2 3 2 3 3 ] \begin{bmatrix} 1 & 1 & 2 \\ 1 & 2 & 3 \\ 2 & 3 & 3 \\ \end{bmatrix} 112123233

单位矩阵

主对角线都是 1,其它位置是 0,这称之为单位阵,单位矩阵写为 I,一定是方阵,等同于数字里面的 1
[ 1 ⋯ 0 0 0 ⋯ 1 ⋯ 0 0 0 ⋯ ⋯ ⋯ 0 0 0 ⋯ ⋯ ⋯ 0 0 0 ⋯ 1 ] \begin{bmatrix} 1 & \cdots & 0 & 0 & 0\\ \cdots & 1 & \cdots & 0 & 0\\ 0 & \cdots & \cdots & \cdots & 0\\ 0 & 0 & \cdots & \cdots & \cdots\\ 0 & 0 & 0 & \cdots & 1\\ \end{bmatrix} 100010000000001

单位矩阵对应的方法是numpy模块中的identity和eye方法, numpy.identity返回一个单位矩阵,即一个对角线上为1,其他位置为0的方阵。

identity方法

参数:

  • n:一个整数,表示输出的单位矩阵的行数和列数。
  • dtype:一个可选参数,用于指定输出数组的数据类型,默认为float类型。

返回值:

  • out:一个大小为n x n的NumPy数组,其主对角线为1,其余元素为0。

eye方法

numpy.eye方法用于创建一个单位矩阵,也称为单位矩阵或恒等矩阵。单位矩阵是一个方阵,它的主对角线上的元素都是1,其余元素都是0。

函数签名:

numpy.eye(N, M=None, k=0, dtype=float, order='C')

参数:

  • N:生成矩阵的行数(也是列数,因为是方阵)。
  • M:可选参数,生成矩阵的列数,默认为N,因为是方阵,一般不需要指定。
  • k:可选参数,对角线的偏移量,默认为0,表示主对角线上的元素为1,其他元素为0;若k为正整数,则主对角线在矩阵的上方,若为负整数,则主对角线在矩阵的下方,对角线元素为1。
  • dtype:可选参数,指定生成矩阵的数据类型,默认为float
  • order:可选参数,指定数组的内存布局,'C'表示C顺序,'F'表示Fortran顺序,默认为'C'

返回值:

  • 返回一个单位矩阵,其形状为(N, M)

示例:

import numpy as np# 创建一个3x3的单位矩阵
eye_matrix = np.eye(3)
print(eye_matrix)
# 输出:
# [[1. 0. 0.]
#  [0. 1. 0.]
#  [0. 0. 1.]]# 创建一个4x4的单位矩阵,主对角线偏移量为1
eye_matrix_shifted = np.eye(4, k=1)
print(eye_matrix_shifted)
# 输出:
# [[0. 1. 0. 0.]
#  [0. 0. 1. 0.]
#  [0. 0. 0. 1.]
#  [0. 0. 0. 0.]]

numpy.eye函数非常有用,特别在线性代数和矩阵运算中经常用到。

identity和eye方法的区别

numpy.eye函数与numpy.identity函数都用于创建单位矩阵,但它们有一些区别:

  1. 参数不同:

    • numpy.eye(N, M=None, k=0, dtype=float)eye函数可以创建任意大小的单位矩阵,其中N表示行数,M表示列数,默认情况下M等于Nk表示对角线的偏移量,默认为0,即主对角线。
    • numpy.identity(n, dtype=None)identity函数创建的是一个方阵(行数等于列数),只需要一个整数n作为参数,表示输出单位矩阵的行数和列数。
  2. 默认值不同:

    • numpy.eye的默认数据类型为float,可以通过dtype参数指定其他数据类型。
    • numpy.identity的默认数据类型也是float,可以通过dtype参数指定其他数据类型。

示例:

import numpy as np# 使用eye创建3x4的单位矩阵,对角线偏移量为1
eye_matrix = np.eye(3, 4, k=1, dtype=int)
print(eye_matrix)
# 输出:
# [[0 1 0 0]
#  [0 0 1 0]
#  [0 0 0 1]]# 使用identity创建3x3的单位矩阵,默认数据类型为float
identity_matrix = np.identity(3, dtype=int)
print(identity_matrix)
# 输出:
# [[1 0 0]
#  [0 1 0]
#  [0 0 1]]

总的来说,eye函数比identity函数更灵活,可以创建非方阵的单位矩阵,并且可以指定对角线的偏移量,而identity函数则专门用于创建方阵的单位矩阵。

对角阵

对角阵,就是主对角线非 0,其它位置是 0
在这里插入图片描述

dot方法在矩阵中的应用

numpy.dot方法用于计算两个数组的矩阵乘法(点积)。在矩阵运算中,矩阵乘法是一种常见的操作,它涉及到两个矩阵的元素相乘和求和的过程。

函数签名:

numpy.dot(a, b, out=None)

参数:

  • a:要进行矩阵乘法的数组或矩阵。
  • b:要进行矩阵乘法的数组或矩阵。
  • out:可选参数,指定输出结果的数组。如果不指定,结果将会创建一个新的数组。

返回值:

  • 返回两个数组的矩阵乘法结果。

注意事项:

  1. 两个数组的维度必须满足矩阵乘法的条件,即第一个数组的列数要与第二个数组的行数相等。
  2. 如果两个数组是一维的,那么dot函数将计算它们的点积(内积)。
  3. 如果两个数组是二维的,那么dot函数将计算它们的矩阵乘法。

示例:

import numpy as np# 一维数组的点积(内积)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
dot_product = np.dot(a, b)
print(dot_product)  # 输出:32# 二维数组的矩阵乘法
matrix_a = np.array([[1, 2], [3, 4]])
matrix_b = np.array([[5, 6], [7, 8]])
matrix_product = np.dot(matrix_a, matrix_b)
print(matrix_product)
# 输出:
# [[19 22]
#  [43 50]]

相关文章:

11-矩阵(matrix)_方阵_对称阵_单位阵_对角阵

矩阵及其运算 [ a 11 ⋯ a 1 n ⋯ ⋯ ⋯ a m 1 ⋯ a m n ] \begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \cdots & \cdots & \cdots \\ a_{m1} & \cdots & a_{mn} \\ \end{bmatrix} ​a11​⋯am1​​⋯⋯⋯​a1n​⋯amn​​ ​ 矩阵就是二维数组&…...

AWS多账户单点登录 IAM Identity Center(AWS SSO)

需求场景 多个aws账户,登陆麻烦且不安全,SSO单点功能并且外部身份提供者 — 如果您要管理外部身份提供者(IdP)(例如 Okta 或 Active Directory)中的用户。 官方文档:https://docs.aws.amazon.c…...

实验2-3-3 求奇数分之一序列前N项和 (15 分)

实验2-3-3 求奇数分之一序列前N项和 (15 分) 本题要求编写程序,计算序列 1 1/3 1/5 … 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S,精确到小数点后6位。…...

关于Android studio中的自动化测试脚本UiAutomator框架以及UiAutomatorViewer工具的使用——项目案例

加入依赖 implementation androidx.test.uiautomator:uiautomator:2.2.0创建CalcActivity页 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"...

OA办公自动化系统设计与实现(论文+源码)_kaic

摘要 随着信息化建设的日益深入&#xff0c;无论是政府还是企事业单位&#xff0c;部门之间的信息沟通与协调工作越来越重要。人们迫切需要一个能充分利用网络优势&#xff0c;并可以管理企业的各种重要信息的软件平台&#xff0c;利用该平台快速建立自己的信息网络和办公管理系…...

ansible——playbook

playbook playbook是剧本的意思 通过 task 调用 ansible 的模块将多个 play 组织在一 个playbook中运行。 playbook本身由以下各部分组成&#xff1a; Tasks: 任务&#xff0c;即调用模块完成的某操作 Variables: 变量 Templates: 模板 Handlers: 处理器&#xff0c;当某条件…...

DDS中间件设计

OpenDDS、FastDDS数据分发服务中间件设计 软件架构 应用层DDS层RTPS层传输层 软件层次 FastDDS整体架构如下&#xff0c;这里可以看到DDS和RTPS的关系。另外缺少一部分IDL&#xff08;统一描述语言&#xff09;&#xff0c;其应该是Pub、Sub的反序列化、序列化工具。 在RT…...

aws的EC2云服务器自己操作记录

亚马逊官网有免费试用1年的服务器 以下内容参考 1. 启动生成实例 1.1 创建实例时需要生成 使用的默认的 Debian 和 一个.pem后缀的秘钥 1.2 网上下一个Mobaxterm ,实例名是公有 IPv4 DNS 地址 ,使用SSH连接,登录名是admin 1.3 登录进去后 输入用户名 admin 后进去,sudo …...

基本ACL 和高级ACL配置

基本ACL 一、要求 1.全网可达 2.在1的基础上使PC1不能访问PC2 二、思路 1.通过写静态的方式使全网可达 2.配置acl主要是拒绝源IP的访问 3.在靠近目标的地方配置acl及使用 三、操作配置 1.IP及静态配置 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip add 123.0.0.1 24 [r…...

【uniapp 报错 Cannot read properties of null (reading ‘offsetWidth‘)解决办法】

该错误通常是由于访问了一个空值的offsetWidth而引起的。解决方法如下&#xff1a; 检查代码中是否有访问了空值的情况&#xff0c;比如变量未初始化或者传入了空值参数或者事件未定义。 在操作元素之前&#xff0c;确保元素已经被正确加载。可以使用如下方法&#xff1a; <…...

6.s081/6.1810(Fall 2022)Lab2: System calls

文章目录 前言其他篇章参考链接0. 前置准备1. System call tracing (moderate)1.1 简单分析1.2 Hint 11.3 Hint 21.4 Hint 31.5 Hint 41.6 Hint 51.7 测试 2. Sysinfo (moderate)2.1 声明2.2 实现2.2.1 框架2.2.2 用户态与内核态交互2.2.3 计算空闲内存的大小2.2.4 计算非UNUSE…...

Git在VSCode中的使用

1.Git图像化界面进行项目初始化&#xff08;git init&#xff09; 2. Git图形化界面对文件进行操作 当我们创建一个文件时&#xff0c;该文件后面有一个U&#xff0c;表示文件未跟踪。 我们在管理工具中输入日志并提交代码&#xff0c;相当于做了两件事&#xff0c;将文件由“…...

【双指针_移动零_C++】

题目解析 移动零 nums [0,1,0,3,12] [1,3,12,0,0]算法原理 数组划分&#xff08;数组分块&#xff09; 双指针算法&#xff08;利用数组下标来充当指针&#xff09;使用两个指针的作用&#xff1a; cur指针&#xff1a;从左往右扫描数组&#xff0c;就是遍历数组。 dest指针…...

【网络安全】网络安全威胁实时地图 - 2023

文章目录 [TOC] ① 360 安全大脑360 APT全景雷达 ② 瑞星杀毒瑞星云安全瑞星网络威胁态势感知平台 ③ 比特梵德 Bitdefender④ 飞塔防火墙 FortiGuard⑤ 音墙网络 Sonicwall⑥ 捷邦 Check Point⑦ AO卡巴斯基实验室全球模拟隧道模拟 ⑧ 数字攻击地图⑨ Threatbutt互联网黑客攻击…...

视频过大如何压缩变小?文件压缩技巧分享

如何压缩视频是许多视频编辑者、视频上传者经常遇到的问题&#xff0c;如果你也遇到了这个问题&#xff0c;不用担心&#xff0c;下面将就给大家分享几个视频压缩方法&#xff0c;可以帮助大家轻松地压缩视频&#xff0c;同时保持视频的高清晰度和音频质量。 一、嗨格式压缩大师…...

组合模式(Composite)

组合模式是一种结构型设计模式&#xff0c;主要用来将多个对象组织成树形结构以表示“部分-整体”的层次结构&#xff0c;因此该模式也称为“部分-整体”模式。简言之&#xff0c;组合模式就是用来将一组对象组合成树状结构&#xff0c;并且能像使用独立对象一样使用它们。 Co…...

grid map学习笔记3之详解grid_map_pcl库实现point cloud点云转换成grid map栅格地图

文章目录 0 引言1 grid_map_pcl示例1.1 主要文件1.2 示例数据1.3 启动文件1.4 配置文件1.5 主要实现流程1.6 启动示例1.7 示例结果 2 D435i 点云生成栅格地图2.1 D435i 点云文件2.2 修改启动文件2.3 测试和结果2.4 修改配置文件2.5 重新测试和结果 0 引言 grid map学习笔记1已…...

ebpf开发问题汇总

不同Programs之间通信 用bpf_obj_get来获取MAP的描述符&#xff0c;然后用bpf_map_reuse_fd函数来在不同program之间复用 kernel 与 user space之间 需要pin the BPF MAP to the BPF Virtual File System (VFS),来持久化存储&#xff0c;否则如果map用不到会被destory 引用…...

认识 mysql 命令

文章目录 1.简介2.选项3.子命令4.小结参考文献 1.简介 mysql 是 MySQL 的命令行客户端工具&#xff0c;用于连接到 MySQL 服务器并执行 SQL 语句。 它支持交互式和非交互式两种使用方式。以交互方式使用时&#xff0c;查询结果以 ASCII 表格式呈现。 当以非交互方式使用时&am…...

IK(Inverse Kinematics,逆运动学)

介绍 在Unity中&#xff0c;IK&#xff08;Inverse Kinematics&#xff0c;逆运动学&#xff09;是一种用于控制角色或物体骨骼的技术。通过使用IK&#xff0c;可以实现更自然和真实的动画效果&#xff0c;特别是在处理复杂的角色动作时非常有用。 IK Pass是Unity中的一个功能…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...