python中矩阵的表示方法_在python中创建数字的二进制表示形式的矩阵 - python

本文介绍了一种在Python中生成汉明(3)矩阵的方法,该矩阵由数字1到7的二进制表示组成。文章提供了实现这一目标的代码示例,并展示了如何将这些二进制数转换为矩阵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了在鼠尾草中编程汉明鳕鱼(基于python的编译器),我需要创建一个矩阵,其中每一列都是数字的二进制表示形式

说Hamming(3)矩阵应该像这样

0 0 0 1 1 1 1

0 1 1 0 0 1 1

1 0 1 0 1 0 1

这是数字从1到7的二进制表示形式。

所以到目前为止,我所做的就是将任何给定的数字转换为二进制表示形式:

我做了这个小功能,它需要两个值n和r

并在r位上代表n

binrep(n,r)

x=n

L=[]

LL=[]

while (n>0):

a=int(float(n%2))

L.append(a)

n=(n-a)/2

while (len(L)

L.append(0)

#print(L)

LL=L[::-1]

return LL

所以现在我想收集我得到的所有LL,并像上面的一样将它们放在一个大矩阵中

python大神给出的解决方案

您只需要将所有这些二进制表示形式转换为整数列表,将它们收集在列表列表中,然后最后transpose该列表列表即可获得所需的输出。

n = 3

binary = []

for i in range(1, 2**n):

s = binrep(i, n)

binary.append(map(int, s))

matrix = zip(*binary)

或一行:matrix = zip(*(map(int, binrep(i, n)) for i in range(1, 2**n)))

结果是

[(0, 0, 0, 1, 1, 1, 1),

(0, 1, 1, 0, 0, 1, 1),

(1, 0, 1, 0, 1, 0, 1)]

另外请注意,还有其他方法convert numbers to binary,例如使用str.format:

def binrep(n,r):

return "{0:0{1}b}".format(n, r)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值