0
n = 1
for n in range(3):         
    p = Poly(a[n+1][0:3])
    print p 
    n=n+1

这是我的编码。基本上,我有一个 3 乘以 3 的矩阵,我想将每一行分配给一个多项式函数,然后将每个多项式函数分配给一个新数组。但是,我不知道如何将每次从 poly 函数执行的 p 值分配给我想要的数组。

一些身体请帮助我。

p 执行的输出看起来像

  • (749.55*x**2) + (6.95*x**1) + (9.68*(10^-4)*x**0)
  • (1285*x**2) + (7.051*x**1) + (7.375*(10^-4)*x**0)
  • (1531*x**2) + (6.531*x**1) + (1.04*(10^-3)*x**0)

基本上,从执行的 p 输出构建一个 3*1 数组就足够了。

对于信息,我的矩阵 a 看起来像这样

[['A', 'B', 'C', 'PMIN', 'PMAX'], ['749.55', '6.95', '9.68*(10^-4)', '320', '800'], ['1285', '7.051', '7.375*(10^-4)', '300', '1200'], ['1531', '6.531', '1.04*(10^-3)', '275', '1100']]
[['A' 'B' 'C' 'PMIN' 'PMAX']
4

3 回答 3

1

列表推导非常简单地描述了这一点:

def Poly(a):
  return "{}x^2 + {}x + {}".format(a[0],a[1],a[2])
a = [['A', 'B', 'C', 'PMIN', 'PMAX'],[1,2,3,99,99],[4,5,6,42,42],[7,8,9,3.14,2.72]]
result = [Poly(a[n]) for n in range(1,4)]
print result

输出是:

['1x^2 + 2x + 3', '4x^2 + 5x + 6', '7x^2 + 8x + 9']
于 2013-03-10T05:19:46.327 回答
0

试试这个:

p = []
for n in range(3):
    p.append(Poly(a[n+1][0:3]))
print p

我无权访问您的Poly函数或a数组,但我们可以像这样测试它:

p = []
for n in range(3):
    p.append([n,n+1,n+2])
print p
#output:
#[[0, 1, 2],
# [1, 2, 3],
# [2, 3, 4]]

我还使用 and 删除了您的行,n+1因为n=n+1这两个行都是通过使用n in range(3)which 自动完成的:

for n in range(3):
    print n
#output:
# 0
# 1
# 2

(请注意,它以 开头0和结尾2,这样它就可以准确地运行3时间)

于 2013-03-10T04:37:44.633 回答
0

但是,我不知道如何将每次从 poly 函数执行的 p 值分配给我想要的数组。

results = []
for x in range(3):
   p = Poly(something)
   results.append(p) # adding it to the list `results`

顺便说一句,在 Python 中,没有数组,只有列表(0-index 集合)和字典,它们更像是哈希。

于 2013-03-10T04:46:07.683 回答