首页 > 编程知识 正文

matlab如何转置矩阵,矩阵的转置怎么求

时间:2023-05-04 09:32:12 阅读:10448 作者:3179

本文主要介绍了Python实现矩阵倒排的方法,并结合实例形式更详细地分析了Python实现矩阵倒排的操作技巧。

deftrans(m ) :

a=[[] for i in m[0]]

for i in m:

forjinrange(Len ) I ) ) :

a[j].append(I[j] ) )。

返回a

m=[ 1,2 ]、[ 3,4 ]、[ 5,6 ] #请想象第一个列表是原始的,后面是添加在里面的

打印传输(m ) # result : [ 1,3,5 ],[ 2,4,6 ] ]

其实不用脑子的话,用双重循环很容易就能写出来:

但是,这个代码怎么看都很丑。

我仔细看了一下m这个结构。 等等,这不是词典iteritems () )的结果吗? 如果是dict(m ),结果——是keys ) )和values ) )吧。

所以,让我们用字典转换一下:

deftrans(m ) :

d=DICT(m ) )。

return [d.keys (,d.values ) ]

但是仔细想想,这里面有臭虫。 如果添加列表中的第一个元素相同,也就是转换后的dict的密钥相同,肯定不行。 而且,如果原始清单不是两个,而是多个的话,就不能使用词典了吧。 所以不要用这个方法,还是仔细看看名单的形状吧。

然后又是一个疏忽的发现:

这个倒排矩阵的即时感是怎么回事?

没错,这个问题的本质是求解倒排矩阵。

deftrans(m ) :

forIinrange(Len ) m ) ) :

forjinrange(I ) :

m[i][j],m[j][i]=m[j][i],m[i][j]

返回m

m=[ 1,2,3 ],[ 4,5,6 ],[ 7,8,9 ] ]

打印传输(m ) )。

其实有一点bug,看起来很好用,但是这个矩阵必须有相同的矩阵长度。

最后,小组的一位大神说:“如果只是将队伍转用的话,直接zip就可以了。 我想起来了,zip的本质就是这样的,取出列表中对应位置的元素,制定新的列表,就是这个主题要做的。

因此,最终,这个主题(倒排矩阵)的python解法相当奇怪:

deftrans(m ) :

返回zip (* m ) ) )。

是的。 就这么简单。 python的魅力。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。