2016-07-29 2 views
0

Я пытаюсь запустить этот цикл, чтобы получить n как десятичное число. Однако, если я вызываю значения из вектора p, n также становится вектором.Суммирование значений из массива и получение двойного

Как это исправить?

ягненка = LINSPACE (400800, Num = 20)

for k in 1/lamb: 
    AR2 = 1.55 
    p = [-0.003396, 0.6518, 66.01, 2435] 
    n = 0.00 

    for i in range(0, 3): 
     n = n + AR2+ p[i]/k**(10-i) 
+2

О чем говорят 'n' и' lamb'? – dashiell

+0

извините, nyellow на самом деле n, в то время как lamb = linspace (400,800, num = 20) – odo22

ответ

1

linspace(400,800,num=20) является массивом. Выполнение операций над ним делает его элементарным. Например:

>>> linspace(400,800,num=20) 
array([ 400.  , 421.05263158, 442.10526316, 463.15789474, 
    484.21052632, 505.26315789, 526.31578947, 547.36842105, 
    568.42105263, 589.47368421, 610.52631579, 631.57894737, 
    652.63157895, 673.68421053, 694.73684211, 715.78947368, 
    736.84210526, 757.89473684, 778.94736842, 800.  ]) 

>>> 2 + linspace(400,800,num-20) 
array([ 402.  , 423.05263158, 444.10526316, 465.15789474, 
    486.21052632, 507.26315789, 528.31578947, 549.36842105, 
    570.42105263, 591.47368421, 612.52631579, 633.57894737, 
    654.63157895, 675.68421053, 696.73684211, 717.78947368, 
    738.84210526, 759.89473684, 780.94736842, 802.  ]) 

Вы не можете просто добавить или умножить массив на поплавки и получить поплавок. Проблема не с p, это linspace

+0

Извините - я должен был сказать, что все это в большем цикле: для k в 1/lamb: – odo22

+0

Ahh - теперь я понимаю ... I звонил ягненку, но на самом деле мне следовало позвонить k! Спасибо! – odo22

0

Если установить lamb и AR2 быть числа, то я не вижу n становится массивом, т.е.

AR2 = 1.55 
p = [-0.003396, 0.6518, 66.01, 2435] 
n = 0.00 
lamb = 0.97 
AR2 = 1 

for i in range(0, 3): 
    n = n + AR2+ p[i]*lamb**(10-i) 
    print(n) 

Возвращает:

0.9974957076650648 
4930143116961103 
55.22791346817842 

Надеюсь, это поможет!

+0

Я получил тот же результат. Проблема в том, что lamb = linspace() - это массив, а не одно значение. См. Выше ответ – pjcognetta