2016-04-14 8 views
3

Also im Wesentlichen habe ich diese Variable Frage [1] wo Frage [1] ist: [[1, 0, 0], [1, 0, 0], [0,1,0] ...]
Ich möchte in der Lage sein, sie vertikal hinzuzufügen, so bekomme ich ein Array wie folgtWie kann ich eine Matrixaddition in rethinkDB machen?

[1,0,0] + [1,0,0] = [2,0,0] + [0,1,0 =] [2,1,0] + ....

Zusätzlich kann der Arrays länger oder kürzer (aber mindestens zwei lang sein)

Wie könnte ich das tun?
Die API-Doc hat das folgende Beispiel:

sequence1 = [100, 200, 300, 400] 
sequence2 = [10, 20, 30, 40] 
sequence3 = [1, 2, 3, 4] 
r.map(sequence1, sequence2, sequence3, 
lambda val1, val2, val3: (val1 + val2 + val3)).run(conn) 

mit Ergebnis: [111, 222, 333, 444]

Aber dies wird für eine variable Menge von Eingaben nicht erklären, wie ich will. Antwort in Python bitte!

+0

Ich versuche, diese 'Frage [1] .fold ([], Lambda-acc, Eintritt: acc + Eintrag ) .run (self.conn)' Aber noch kein Glück, einen seltsamen Fehler bekommen, dass 'Klammer' hat kein Attribut fold, warum? –

Antwort

2

Von @mglukov

r.expr([[100, 200, 300, 400],[10, 20, 30, 40],[1, 2, 3, 4]]).reduce((left,right) => { 
return left.map(right, (leftVal, rightVal) => { return leftVal.add(rightVal); }); 
}) 

Gute Frage!

+0

Hallo Neil! Danke, dass du mir letzte Nacht geholfen hast. '' 'R.expr (Frage [1]). Reduzieren (Lambda links, rechts: links.map (rechts, Lambda linksVal, rechtsVal: linksVal + rechtsVal))' ' ist die Python-Übersetzung, wenn jemand interessiert ist! –