Ich versuche, ein Stück Code zu schreiben, der das Minimum einer Variablen (RSS3) nur findet, wenn alle Elemente einer Liste (rate3)> 0 sind. Ich habe es getan :Wenn Bedingung nicht wie erwartet zurückkehrt
if RSS3_min < RSS3_fin and (all(guess3[q]) > 0 for q in range(len(guess3))):
RSS3_fin = RSS3_min
guess3_fin = guess3
print i,j,k, 'RSS3 = ',RSS3_fin, 'guess3 = ', guess3
die Ausgabe sieht so aus:
0 1 2 RSS3 = 152.470584348 guess3 = [ 1.03993316e-18 -4.21309327e-21 3.91958921e-23]
0 1 3 RSS3 = 138.828305634 guess3 = [ -9.72979812e-18 2.45455199e-20 9.91015993e-17]
0 2 6 RSS3 = 110.971076196 guess3 = [ 2.51690683e-18 6.50243486e-23 -1.64840584e-18]
0 2 12 RSS3 = 110.167564411 guess3 = [ 1.67526232e-18 6.93897310e-23 -9.25020238e-19]
was bedeutet, dass der zweite Teil meiner if
Bedingung nicht erfüllt ist. Wo liege ich falsch? Bitte bedenke, dass ich Python wirklich neu bin, also halte die Dinge einfach ... Danke!
Was über deine Ausgabe suggeriert dir, dass das zweite Stück des 'if' nicht zufrieden ist? Welche Ausgabe erwarten Sie stattdessen? –
'all (rate3 [q])> 0 'tut nicht das, was Sie denken, das ist nur wahr, wenn Sie keinen falschen Wert haben in was auch immer' rate3 [q])' ist und dann nur weil 'True> 0' –
Hinweis: Was ist ein Unterschied zwischen: '(all (g)> 0 für g in guess3)' und 'all (g> 0 für g in guess3)'? –