python之矩阵的旋转

面试金典07(Python)—— 旋转矩阵(中等) 概述:给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到? 阅读详情

  一个矩阵我们想让它通过编程,实现各种花样的变化怎么办呢?

  我发现百度没有很好的代码,我就自己研究啦!

用到的函数

pop([index])

  删除并返回列表中下标为index(默认为-1)的元素

reverse()

  对列表所有元素进行逆序

好多问题

按行逆序输出矩阵

问题描述1

  初始矩阵a=[[1,2,3],[4,5,6]]变化成a=[[4,5,6],[1,2,3]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('按行倒序输出')
a.reverse()
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()

运行结果

按列倒序输出矩阵

问题描述2

   初始矩阵变化成a=[[3,2,1],[6,5,4]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('按列倒序输出')
for i in range(n):
    for j in range(m):
        print(a[i].pop(),end=' ')
    print()

运行结果

顺时针旋转90度

问题描述3

  初始矩阵变化成a=[[4,1],[5,2],[6,3]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('顺时针旋转90度')
a.reverse()#将矩阵中的元素按行逆序
#改变矩阵的形状
for i in range(m):
    for j in range(n):
        print(a[j][i],end=' ')
    print()

运行结果

顺、逆时针旋转180度

问题描述4

  初始矩阵变化成a=[[6,5,4],[3,2,1]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('顺时针旋转180度')
a.reverse()#将矩阵中的元素按行逆序
#按列倒序输出
for i in range(n):
    for j in range(m):
        print(a[i].pop(),end=' ')
    print()

运行结果

 

逆时针旋转90度

问题描述5

  初始矩阵变化成a=[[3,6],[2,5],[1,4]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('逆时针旋转90度')
#改变矩阵的形状,再倒序输出
for i in range(m):
    for j in range(n):
        print(a[j].pop(),end=' ')
    print()

运行结果

 

对问题的思考

  python自带了很多函数,我们要充分的利用起来。刚开始我解决问题的时候想得是该一下循环和数组的下标,因为c、c++语言解决这个问题的时候就很容易就解决了。但是呢,python总是说IndexError: list index out of range,好的下标越界了,可是我们定义数组的时候它也不让这么写啊(例如,a[105][105]),我们只能这么写(a=[])。可能我刚学,还不知道解决的方法。大家如果知道的话,一定要告诉我呀。

  所以说呢,它不让这么改变,我们只能用函数来解决啦。

  今天又是爱学习的好孩子呢。

python旋转矩阵与欧拉角互转 说明如何实现python旋转矩阵与欧拉角互转并拓展解释什么是欧拉角 阅读详情

相关推荐

【Python】旋转矩阵与旋转向量的相互转换(OpenCV)

因为任意旋转矩阵仅有 3 个自由度,因此旋转向量是旋转矩阵的一个方便和最紧凑的表示。在全局 3D 几何优化中常用到旋转矩阵和旋转向量的相互转换,例如相机标定、PnP 问题的求解等。本文介绍基于 OpenCV-Python 的互转换实现方法。函数即可实现旋转矩阵与旋转向量的相互转换。通过 OpenCV 提供的。

XavierJ的博客 6865

旋转矩阵的几种python函数实现方法

1、旋转矩阵定义——欧拉角可以看出x-y-z内旋等价于z-y-x外旋。参考这个函数很好用,支持很多旋转表达形式(欧拉角,旋转向量,旋转矩阵,修正的Rodrigues参数,四元数)之间的转换,用的比较多的欧拉角和旋转矩阵之间的转换,但也踩了 一些坑。这里 'xyz' 表示旋转轴的顺序,,例如:R.from_euler('xyz', euler, degrees=True),它等价于 rx = euler[0],ry = euler[1],rz = euler[2],R = Rz*Ry*Rx;

weixin_55477961的博客 2440

【力扣算法】【python】旋转矩阵

【python】力扣_旋转矩阵题目链接题目描述题解思路 题目链接 https://leetcode-cn.com/problems/rotate-matrix-lcci/ 题目描述 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 示例 #给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], #原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2

unknown的博客 866

python实现矩阵旋转操作

看了网上许多帖子,都是采用自己编写算法来实现操作...,就挺无语的,我想python这类高封装编程语言怎么也会有已经包装好的矩阵旋转函数啊! 在卷积层的误差反向传播时,会用到卷积层(滤波器的180度旋转),在numpy包中采用函数np.rot90()即可实现对矩阵旋转90度。 使用时注意对象只能是numpy矩阵,实例如下: import numpy as np A=np.asfarray([[1,2],[3,4]]) B=np.rot90(A) C=np.rot90...

csdn_dsc的博客 3213

python中将四元数转换为旋转矩阵

在制作bundlefusion时,想测试TUM数据集,并且将groundtruth写入到数据集中,TUM中给定的groundtruth中的旋转是使用四元数表示的,而bundlefusion中需要SE3的形式,所以我需要首先将四元数转换为旋转矩阵,然后再将其与平移向量合并在一起,因为我之前关于生成bundlefusion数据集写了一些python脚本,所以这次仍然想在原来的脚本上完成这项任务,所以我就在网上搜索,实现方法,最终我成功解决这个问题的方法如下: 最近买了个vpn,所以我可以潇洒的在google中

weixin_38636815的博客 7297

Python实现矩阵旋转算法

矩阵旋转算法的基本思想是将矩阵中的每个元素按照旋转角度进行变换,并将变换后的元素放置到新的位置上。创建一个新的矩阵,大小与原始矩阵相同。遍历原始矩阵中的每个元素。计算每个元素在旋转后的新位置。将原始矩阵中的元素复制到新矩阵的新位置上。返回旋转后的新矩阵。# 获取矩阵的行数和列数# 创建一个新的矩阵来存储旋转后的结果# 将角度转换为弧度# 计算旋转中心点的坐标# 遍历原始矩阵中的每个元素# 计算当前元素相对于旋转中心点的坐标# 应用旋转变换# 计算旋转后的新位置。

JieLun_C的博客 1154

python旋转矩阵90°_NumPy矩阵的旋转

13. NumPy矩阵的旋转在用Python的数字图像处理、CNN或者深度学习里,对图像的处理:形变(缩放)处理常将图像数据读取到NumPy的array数据里,然后对图像数据进行形变处理。NumPy提供了很多的对array数组的操作:tile、rot90等。本章除了了解rot90的基本使用外,自己也想写点程序实现旋转的功能。13.1 rot90函数实现矩阵旋转从NumPy的官方完整查到rot90函...

weixin_39750598的博客 5091

【python】旋转轴角计算旋转矩阵

空间内旋转问题,绕任意一个旋转轴进行旋转

miniy 2150

转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换

由于在平时总是或多或少的遇到平移旋转的问题,每次都是现查资料,然后查了忘,忘了继续查,这次弄明白之后干脆写一篇文章,给人方便同时于己方便,后续如有扩充或变动也方便添加。

非晚非晚的博客 1万+

别再折腾老教程了!树莓派4B/5最新系统(Raspberry Pi OS Bookworm)红外遥控配置,用gpio-ir驱动一次成功

本文详细介绍了树莓派4B/5在最新Raspberry Pi OS Bookworm系统下配置红外遥控的完整指南,摒弃过时的lirc-rpi驱动,采用现代gpio-ir驱动方案。从硬件连接到软件配置,提供10分钟快速上手指南,涵盖驱动加载、信号测试、按键映射及高级应用场景,帮助用户高效完成红外遥控配置。

weixin_42520909的博客 442

Allegro PCB设计小技巧:如何用Shift键快速平移复制走线和过孔?

本文深入解析了Allegro PCB设计中利用Shift键进行平移复制的核心技巧。通过对比传统复制粘贴流程,详细演示了如何高效、精准地批量复制走线和过孔,尤其适用于创建等间距电源总线、过孔阵列等场景,能显著提升PCB设计效率与准确性。

pz89012345的博客 554

旋转矩阵求旋转角度_python 实现矩阵旋转

今天做了一道 leetcode 关于矩阵旋转(rotate-image,点击可查看原题)的题目,自己写了一种解法(基于Python),网上也看到一些比较好的解决方式,借此做一个总结。 阅读本文可能需要 5-8 分钟题意分析题目是英文的,但是看这个题目英文理解起来也不是很困难。关键词: 1、matrix: 矩阵 2、2D matrix: 二维矩阵 3、rotate: 旋转 4、clockwise: ...

weixin_39652760的博客 1885

手把手拆解固态电池成本:2030年真能比液态电池便宜30%吗?

本文深度解析固态电池成本结构,探讨2030年实现比液态电池便宜30%的可行性路径。通过拆解正极材料、负极材料和固态电解质的成本演变,分析关键技术对降本的影响,并预测产业链协同效应下的成本优化趋势。文章指出,在材料创新、设备国产化和政策支持等多重因素推动下,固态电池有望在2030年实现显著降本目标。

kite3的博客 403

python旋转矩阵_48旋转图像旋转矩阵Python,48RotateImage

输入一个表示图像的nxn2D矩阵。将图像旋转90度(顺时针)注意:必须就地旋转图像,这意味着您必须直接修改输入2D矩阵。不要分配另一个2D矩阵并进行旋转。Input: matrix=[[1,2,3],[4,5,6],[7,8,9]]Output:[[7,4,1],[8,5,2],[9,6,3]]上面为数字下面为旋转后之前的行列位置由于不可以用其他矩阵,将数存入新的矩阵的想法流产,但是可以作为参考...

weixin_39865204的博客 473

ANSYS 有限元分析 支架拓扑优化设计 分析过程及常见问题解决

1.确定分析类型,所用模块包括两种 static structural Topology Optimization。3.通过草图建立几何模型,建好的几何模型如图1所示。2.工程材料采用默认的Q235。

m0_68737530的博客 1966

PINN内嵌物理知识神经网络入门及文献总结

内嵌物理知识深度学习方法(PINN)已经成功用于解决各类科学计算问题,其本质是将物理先验知识嵌入神经网络训练中,将一个求解PDE的问题转化为一个优化问题。这篇博客主要记录PINN相关论文

山里娃的博客 7万+

python旋转矩阵90°_用Python旋转矩阵

假设我们有一个nxn 2D矩阵。我们必须将该矩阵顺时针旋转90度。所以如果矩阵像157963213然后输出将是291165337为了解决这个问题,我们将遵循以下步骤-考虑temp_mat = [],col:=矩阵长度– 1对于0到矩阵长度的col在温度中添加matrix [row,col]temp:= []用于矩阵范围长度内的行– 1到-1将temp添加到temp_mat对于范围从0到矩阵长度的i...

weixin_32638607的博客 1840

rsyslog交叉编译(armv7、armv8、aarch64、arm32平台通用)

该文档描述了如何交叉编译rsyslog到arm64嵌入式平台。

sinat_33909696的博客 1560

Python动态演示旋转矩阵的作用

由于旋转被建模成了矩阵,而众所周知矩阵乘法是不可交换的,也就是说,就算绕着三个坐标轴旋转相同的角度,也会因为转动次序不同而引发不同的结果。为了比较直观地展示旋转过程,这里通过散点来新建三个坐标轴,通过对这三个坐标轴的转动,来直观地展现转动矩阵对坐标变换的影响。30°的转动之后,坐标轴变得面目全非,接下来要做的就是动态绘制这三个坐标轴的旋转过程。有了旋转矩阵,就可以旋转,接下来让坐标轴沿着三个轴分别旋转30°,其效果如下。将旋转矩阵写成函数是十分方便的,下面用。

微小冷的学习笔记 3020

2023全国职业技能大赛 网络系统管理 服务部署 Linux部分--基础配置

服务器和客户端基本配置如下表,各虚拟机已预装系统。一、关闭防火墙和Selinux。七、需要使用到的命令详解。三、修改root密码。

weixin_62926639的博客 1000

Android驱动工程师职位(侧重于Bringup、外设驱动调试、芯片平台经验)

本文摘要:深圳泓京纬科技招聘Android驱动工程师,要求具备Bootloader/LK/Linux Bringup经验,熟悉LPDDR/eMMC/UFS等存储设备调试。文章详细解析了Android系统架构、Linux驱动开发核心概念、设备树作用、串口调试方法等基础知识。重点介绍了存储驱动架构、性能优化和故障排查技巧,包括eMMC识别问题、UFS性能优化、NAND ECC错误处理等实战场景。同时涵盖芯片平台开发经验、跨部门协作调试方法,以及低温环境等特殊场景的问题解决方案。

郑伟强dev的专栏 248

python矩阵旋转函数_Python一行代码解决矩阵旋转的问题

今天刷《剑指offer》的时候碰到这样一道题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路:可以模拟魔方逆时针旋转的方法,一直做取出第一行的操作,例如 :1 2 34 5...

weixin_39921504的博客 681

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Python实现旋转打印矩阵

** Python实现旋转打印矩阵 ** 思路:逆时针旋转矩阵,打印完一行删除一行,直到打印结束 class Solution(object): def printMatrix(self, matrix): # 打印矩阵 result = [] while matrix: result += matrix.pop(0) if matrix: ...

weixin_43734271的博客 978

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python矩阵旋转函数_Python3算法之十:矩阵旋转

关注微信公众号“酸痛鱼”,获得更多最新最全的文章。本文中所涉及的代码,在未特殊声明的情况下,都是基于Python3程序设计语言编写的。建议您在PC浏览器中阅读本文,以获得更好的阅读体验。0问题描述实现一个函数,该函数接收一个n×n二维矩阵matrix,将该矩阵顺时针旋转90度。要求直接对参数matrix进行修改,函数不返回任务东西。例如:给定 matrix =[[1, 2],[3, 4],]旋转后...

weixin_39761655的博客 1213

旋转矩阵 python

给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 1.最容易想到的暴力法。仔细看矩阵下标会发现,90°旋转是将[i][j]位置的值置换成[n-j-1][i]位置的值(n为长度) class Solution: def rotate(self, matrix: List[List[int]]) -> None: ...

weixin_43217149的博客 2609
上一篇: ccf201412-1门禁系统(python100分)
下一篇: ccf201503-1图像旋转(python100分)
宝宝很聪明
博客等级 码龄10年 353粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值