首页 / PYTHON / python中的希尔伯特矩阵代码
python中的希尔伯特矩阵代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python中的希尔伯特矩阵代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1055字,纯文字阅读大概需要2分钟。
内容图文
![python中的希尔伯特矩阵代码](/upload/InfoBanner/zyjiaocheng/669/207fd40c9ded4efeb684d5d6b84663ab.jpg)
希尔伯特矩阵是一个矩阵,其元素由下式给出:
aij =(i j-1)-1
所以我试图用python编写代码.这是我的代码:
import math
a = int(input("Enter row"))
b = int(input("Enter column"))
def hilmat(a,b):
li=[0]*b
for i in range(a):
for j in range(b):
if(i+j>0):
ele=math.pow((i+j-1),-1)
li += ele
else:
ele=math.pow((1-i-j),-1)
li += ele
j=j+1
i=i+1
return li
hilmat(a,b)
运行此将引发此错误:
Float object not iterable
我该如何解决?
解决方法:
这里的错误源于li = ele;由于li是list类型,Python将这一行作为将ele连接到li末尾的指令;但是ele是一个浮点数,因此无法完成,因为它不是列表,因此会引发错误.
由于需要列表列表,因此应将li初始设置为[[]] * b;但实际上,要使li形状为[a,b],您要设置li = [[]] * a.
在ele = math.pow((i j-1),-1)中,您应注意,由于Python索引从0开始,因此您可能想使用ele = math.pow((i j 1),-1).
将某些内容附加到数组的更常用的语法是使用append方法.
i = i 1,j = j 1都是多余的,因为for循环已经可以处理增量.实际上,它们可能会导致错误.
return li应该与函数的其余部分缩进.
您的最终功能应为:
def hilmat(a,b):
li=[[]]*a
for i in range(a):
for j in range(b):
ele=math.pow((i+j+1),-1)
li[i].append(ele)
return li
内容总结
以上是互联网集市为您收集整理的python中的希尔伯特矩阵代码全部内容,希望文章能够帮你解决python中的希尔伯特矩阵代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。