2016-07-29 21 views
0

Ich versuche, diese Schleife zu laufen, um n als eine Dezimalzahl zu erhalten. Wenn ich jedoch Werte aus dem Vektor anrufe, wird auch n ein Vektor.Summieren von Werten aus Array und erhalten ein Doppel

Wie behebe ich das?

Lamm = linspace (400.800, 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

Worauf beziehen sich 'n' und' lamm'? – dashiell

+0

sorry, nyellow ist eigentlich n, während lamm = linspace (400,800, num = 20) – odo22

Antwort

1

linspace(400,800,num=20) ist ein Array. Die Ausführung von Operationen macht es elementweise. Zum Beispiel:

>>> 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.  ]) 

Sie können nicht einfach ein Array durch Floats hinzufügen oder multiplizieren und einen Float zurück erhalten. Das Problem ist nicht mit p, es ist linspace

+0

Sorry - ich hätte sagen sollen, dass es alles in einer größeren Schleife ist: für k in 1/lamm: – odo22

+0

Ahh - jetzt verstehe ich ... I rief Lamm, aber eigentlich hätte ich k rufen sollen! Vielen Dank! – odo22

0

Wenn ich lamb und AR2 gesetzt Zahlen werden dann nicht n Ich sehe ein Array immer das heißt

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) 

Returns:

0.9974957076650648 
4930143116961103 
55.22791346817842 

Ich hoffe das hilft!

+0

Ich habe das gleiche Ergebnis. Das Problem ist, dass lam = linspace() ein Array ist, kein einzelner Wert. Siehe obige Antwort – pjcognetta