Python读取二进制字符串转换为可做逻辑运算的二进制矩阵方法
二进制字符串转矩阵Python实现
参数说明
sys.argv[1]:k,矩阵的行数sys.argv[2]:n,矩阵的列数sys.argv[3]:原始输入串,不同二进制元素用大写字母S分隔
实现代码
import sys import numpy as np if __name__ == '__main__': # 读取命令行参数 k = int(sys.argv[1]) n = int(sys.argv[2]) raw_str = sys.argv[3] # 拆分得到所有二进制元素列表 bin_elements = raw_str.split('S') # 生成字符串格式的二维矩阵,和需求示例结构完全一致 matrix = [bin_elements[i*n : (i+1)*n] for i in range(k)] # 需要做位运算可替换为下方代码,把二进制字符串转成对应数值 # matrix = [[int(num, 2) for num in bin_elements[i*n : (i+1)*n]] for i in range(k)] # 需要用numpy做批量矩阵运算可替换为下方代码 # matrix = np.array([[int(num, 2) for num in bin_elements[i*n : (i+1)*n]] for i in range(k)]) print(matrix)
运行效果
执行示例命令:python3 2 2 1101S101S111S1000
输出结果完全符合需求:[['1101', '101'], ['111', '1000']]
位运算说明
转成数值格式的矩阵可以直接用Python位运算符做操作:
- AND运算用
& - XOR运算用
^ - OR运算用
|
内容的提问来源于stack exchange,提问作者user6346482
相关产品推荐
相关产品推荐

