python实战实例:矩阵加法乘法转置

1.矩阵加法—题目描述

输入两个 n行 m 列的矩阵 A 和 B,输出它们的和 A+B,矩阵加法的规则是两个矩阵中对应位置的值进行加和,具体参照样例。

输入格式

第一行包含两个整数 n 和 m,表示矩阵的行数和列数。

接下来 n 行,每行 m 个整数,表示矩阵 A 的元素。

接下来 n 行,每行 m 个整数,表示矩阵 B 的元素。

相邻两个整数之间用单个空格隔开。

输出格式

n 行,每行 m 个整数,表示矩阵加法的结果。相邻两个整数之间用单个空格隔开。

输入输出样例

输入 #1

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

输出 #1

2 4 6
5 7 9
8 10 12
n,m=map(int,input().split())
a=[[0 for _ in range(m)]for _ in range(n)]
b=[[0 for _ in range(m)]for _ in range(n)]
c=[[0 for _ in range(m)]for _ in range(n)]
for i in range(n):x=input().split()for j in range(m):a[i][j]=int(x[j])
for i in range(n):x=input().split()for j in range(m):b[i][j]=int(x[j])
for i in range(n):for j in range(m):c[i][j]=a[i][j]+b[i][j]print(c[i][j],end=' ')print()
  • 此题较为简单,输入的两个矩阵的每个元素相加赋值给新矩阵。
  • 输出新矩阵即可。

2.矩阵乘法—题目描述

计算两个矩阵的乘法。n×m 阶的矩阵 A乘以 m×k阶的矩阵 B 得到的矩阵 C是 n×k阶的,且 C[i][j]=A[i][0]×B[0][j]+A[i][1]×B[1][j]+ …… +A[i][m−1]×B[m−1][j](C[i][j] 表示 C矩阵中第 i 行第 j 列元素)。

输入格式

第一行为 n,m,k,表示 A矩阵是 n 行 m 列,B矩阵是 m 行 k 列。

然后先后输入 A 和 B两个矩阵,A矩阵 n行 m列,B矩阵 m行 k 列。

输出格式

输出矩阵 C,一共 n 行,每行 k 个整数,整数之间以一个空格分开。

输入输出样例

输入 #1

3 2 3
1 1
1 1
1 1
1 1 1
1 1 1

输出 #1

2 2 2
2 2 2
2 2 2
n,m,k=map(int,input().split())
a=[[0 for _ in range(m)]for _ in range(n)]
b=[[0 for _ in range(k)]for _ in range(m)]
c=[[0 for _ in range(k)]for _ in range(n)]
for i in range(n):x=input().split()for j in range(m):a[i][j]=int(x[j])
for i in range(m):x=input().split()for j in range(k):b[i][j]=int(x[j])
for i in range(n):for j in range(k):c[i][j]=0for h in range(m):c[i][j]=c[i][j]+a[i][h]*b[h][j]
for i in range(n):for j in range(k):print(c[i][j], end=' ')print()

解析:

  • 根据题分别定义三个矩阵。
  • 输入矩阵A、B。
  • for h in range(m):c[i][j]=c[i][j]+a[i][h]*b[h][j],根据要求求出矩阵c的每个值。
  • 输出矩阵c即可。

3.矩阵转置—题目描述

输入一个 n行 m 列的矩阵 A,输出它的转置 A^{^{T}}

输入格式

第一行包含两个整数 n 和 m,表示矩阵 A 的行数和列数。

接下来 n 行,每行 m 个整数,表示矩阵 A 的元素。相邻两个整数之间用单个空格隔开。

输出格式

m 行,每行 n个整数,为矩阵 A 的转置。相邻两个整数之间用单个空格隔开。

输入输出样例

输入 #1

3 3
1 2 3
4 5 6
7 8 9

输出 #1

1 4 7
2 5 8
3 6 9
n,m=map(int,input().split())
a=[[0 for _ in range(m)] for _ in range(n)]
for i in range(n):x=input().split()for j in range(m):a[i][j]=int(x[j])
for i in range(m):for j in range(n):print(a[j][i],end=' ')print()
  • 矩阵转置,只需将矩阵的行和列互换输出即可。

今天有没有很充实?!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git安装及配置

Git安装 在你开始使用 Git 前,需要将它安装在你的计算机上。 即便已经安装,最好将它升级到最新的版本。 你可以通过软件包或者其它安装程序来安装,或者下载源码编译安装。 下面,我们将会介绍不同操作系统上 Git 的安装方法。 在 Windows 上安装 在 Windows 上安装 Git 的…

STM32的寄存器详解

目录 前言 一、 STM32 单片机寄存器概述 1.寄存器的作用 2.寄存器的分类 二、STM32 内核寄存器 1.程序计数器(PC) 2.堆栈指针(SP) 3.链接寄存器(LR) 4.控制寄存器(CONTROL)…

智能分拣投递机器人

产品介绍 自研智能分拣投递机器人,专注于物流行业“NC小件”的分拣与投递,机器人运行稳定、分拣效率高,搭配智能分拣投递系统单台机器人最大作业效率可达400件/H,投递效率相较于传统“小黄人“提升了30%-50%,可替代“…

【3.8】贪心算法-解无重叠区间

一、题目 给定一个区间的集合 intervals ,其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后,剩下的区间没有重叠…

EtherCAT 转 ModbusTCP 网关

设备简介 本产品是 EtherCAT 和 Modbus TCP 网关,使用数据映射方式工作。 本产品在 EtherCAT 侧作为 EtherCAT 从站,接 TwinCAT 、 CodeSYS 、 PLC等;在 ModbusTCP 侧做为 ModbusTCP 主站( Client )或从站…

奉加微PHY6233开门狗;超时时间对不上;好像应用不需要喂狗只需要开启定时器就行;底层是通过空闲任务喂狗的

超时时间对不上 这里设置看门狗超时时间为WDG_16S: hal_watchdog_config(WDG_16S);但是我测试到复位时间却是34秒: 然后我设置时间为WDG_2S的话实际间隔是6秒: 我很无语,被逼无奈只能够认了,最小设置是WDG_2S也就是说时间为6秒,这时候2秒喂狗一次: #define

计算机视觉基础. 1 学习导论

1 .引言 学习的目的是从过去的经验中吸取教训,以解决未来的问题。通常,这涉及搜索解决问题过去实例的算法。然后,该算法可以应用于该问题的未来实例。 过去和未来不一定指日历日期;相反,它们指的是学习者之前看到的内…

使用python导出Excel表格中的lua配置

背景:游戏开发中, 策划使用Excel配置游戏中的参数数据,写一个工具用于导出这些配置 工具选择使用 python来开发,这样Windows、macOS、Linux平台都可以使用,而且有丰富的第三方模块。 本机先安装python,我…

二叉树相关练习

二叉树相关oj题: 对称二叉树 解题思路:判断一棵树是否轴对称,先判断左右子树结构是否相同,结构相同的情况下再判断对应的val是否轴对称,判断根节点的左右子树,再判断根节点的左右子树的左右子树是否轴对称…

CAD二次开发IFoxCAD框架系列(25)- 自动加载和初始化的使用

自动加载,意思就是我们不需要每次重启都得要去输入netload加载软件,这个我们该怎么解决,CAD给我们提供了注册表的方式来进行加载,IFoxCAD给我们提供了非常便捷的操作注册表的方法。 namespace ifoxgse.Core.System;public static…

【Python系列】text二进制方式写入文件

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

C语言 | Leetcode C语言题解之第376题摆动序列

题目&#xff1a; 题解&#xff1a; int wiggleMaxLength(int* nums, int numsSize) {if (numsSize < 2) {return numsSize;}int prevdiff nums[1] - nums[0];int ret prevdiff ! 0 ? 2 : 1;for (int i 2; i < numsSize; i) {int diff nums[i] - nums[i - 1];if ((…

Redux的中间件原理分析

Redux的中间件原理分析 redux的中间件对于使用过redux的各位都不会感到陌生&#xff0c;通过应用上我们需要的所有要应用在redux流程上的中间件&#xff0c;我们可以加强dispatch的功能。最近抽了点时间把之前整理分析过的中间件有关的东西放在这里分享分享。本文只对中间件涉…

Leetcode 404-左叶子之和

题目 给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 题解 二叉树的题目&#xff0c;如果需要返回某个值&#xff0c;可以分左右子树递归计算&#xff0c;最后sumleftright 递归三部曲&#xff1a; 确定递归函数的参数和返回值 判断一个树的左叶子节点之和&…

插入排序

插入排序是一种简单直观的排序算法。它的基本思想是将待排序的数据分成已排序和未排序两部分&#xff0c;每次从未排序部分选择一个元素插入到已排序部分的合适位置&#xff0c;直到未排序部分为空。 插入排序是一种简单直观的排序算法&#xff0c;它的基本思想是将一个元素插…

Windows系统安装MySQL

下载MySQL 打开网址MySQL :: Download MySQL Community Server点击图下所示位置Download 进入图下所示界面&#xff0c;点击图下所示位置不登录下载 已下载完成 安装MySQL 将下载好的压缩包解压到一个专门的位置&#xff0c;该软件为绿色版软件&#xff0c;解压即可使用 配置…

Open3D mesh Taubin滤波

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 参数详解 返回值 2.2完整代码 三、实现效果 3.1加入噪声的mesh 3.2Taubin迭代10次 3.3Taubin迭代100次 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云…

分布式云扩展 AI 边缘算力,助力用户智能化创新

近期&#xff0c;AI 创新圈再次发布重磅产品更新。OpenAI 全新旗舰版多模态模型 GPT-4o 横空出世&#xff0c;其打通文本、图像、视频的富媒体理解能力以及敏捷的智能化对话&#xff0c;将 AI 助手的人性化表达效果&#xff0c;提升至更高水平。 ​ 从技术源头来看&#xff0c…

数据线性结构

一、线性表 优点&#xff1a;可以很快速的找到内存地址 查询&#xff0c;修改快 缺点&#xff1a;在中间部分新增&#xff0c;删除部时需要移动后续的元素 像java中的stream流的过滤等操作都是新建立一个集合有序插入返回&#xff0c;空间换时间 java中list下标为什么要从0开…

网工面试题(安全)

上一篇&#xff1a;网工面试题&#xff08;数通&#xff09; 防火墙 防火墙的应用场景 防火墙&#xff1a;部署在网络出口处/服务器区(数据中心&#xff09;/广域网接入&#xff0c;用于防止外界黑客攻击、保护内网安全硬件。 传统防火墙和下一代防护墙的区别 传统防火墙的功能…