Follow-up auf this question. Ich habe eine Matrix (ja, ich tue), die groß und dünn sein wird.Benutzerdefinierte rowSums einer Matrix in Kapelle
A = [
[0, 0, 0, 1.2, 0]
[0, 0, 0, 0, 0]
[3.5, 0, 0, 0, 0]
[0 7, 0, 0, 0]
]
Und ich möchte einen Vektor v
erstellen, die die Summe v[j] = v[j,] * log(v[j,])
für jede Zeile hat in A
Ich glaube, es ist ein Iterator wie [x * log(x) for x in row] do...
aber ich habe eine harte Zeit, um die Syntax zu finden. Eine besondere Bugaboo ist es, zu vermeiden, , also vielleicht eine if
Anweisung im Iterator nehmen?
Können Sie ein wenig erklären, wie die Förderung hilft hier? –
Kurz gesagt, wenn Sie ein iterables Objekt vom Elementtyp "t" an eine Funktion übergeben, die den Typ "t" erwartet, wird die Funktion für jedes Element (parallel!) Aufgerufen. Ich habe einen Link zu der Dokumentation (http://chapel.cray.com/docs/master/users-guide/datapar/promotion.html) in einer Bearbeitung für weitere Erklärungen hinzugefügt. – bencray