python - 用python制作稀疏矩阵和向量乘法程序的问题
问题描述
我正在用没有 numpy的 python 制作稀疏矩阵和向量乘法程序。但是,结果有一点问题。当我在每个处输入行、列、非零矩阵时,4、5、6。结果应该像第一张图片一样带有4个空格。但是当我运行它时,结果显示 5 个空格。我可以解决这个问题吗?
代码:
from random import randint
import random
def printMatrix(m):
for i in range(m["nr"]):
for j in range(m["nc"]):
print(m.get((i,j),0), end=" ")
print("")
def SpDOT(m,i,v):
sum = 0;
for k in range(m["nr"]):
sum += m.get((i,k),0)*v[k]
return sum
def Smvm(m,vactor):
ans=[]
for i in range(mat["nc"]):
ans.append(SpDOT(m,i,vector))
return(ans)
nr=int(input('Number of rows: '))
nc=int(input('Number of columns: '))
nz=int(input('Max Number of non-zeros in the matrix: ')) #input
mat = {}
mat["nr"]=nr
mat["nc"]=nc
for _ in range(nz):
mat[randint(0,nr-1), randint(0,nc-1)] = randint(1,2)
dic = {"nr":nr, "nc":nc}
for key, value in mat.items():
if value == 1 or value == 2:
dic[key]=value
print(dic)
print("Sparse Matrix:")
printMatrix(mat)
vector = []
for i in range(nc):
vector.append(random.randint(0,3))
print("vector: ")
print(vector)
vec2 = Smvm(mat, vector)
print("Result: ")
print(vec2)
解决方案
推荐阅读
- kubernetes - 列出正在为服务提供服务的 pod
- karate - 空手道:如何在空手道中初始化 RemoteWebDriver
- python - 用神经网络识别钞票,我必须裁剪数据集的图像吗
- javascript - 当我的 Angular 库项目使用“--prod”选项启动时,扩展内置类的方法(通过 JS 的“.prototype”属性)不起作用
- javascript - 首先通过节点后端传递所有http请求和React Routes进行会话验证,然后返回路径
- c - 为什么C不能直接分配数组,但可以在结构中分配数组?
- android - LiveData 完成加载时触发代码?
- angular - 如何将对象转换为对象数组?在角
- ios - Xcode 中的签名配置文件冲突
- wordpress-theming - 函数.php 文件