Reduziert die Auflösung des Arrays durch Summierung

8

Wenn ich ein Array wie folgt habe:

%Vor%

Ich möchte "die Auflösung ändern" und am Ende ein kleineres Array haben (sagen wir 2 Zeilen mal 2 Spalten oder 2 Zeilen mal 4 Spalten usw.). Ich möchte, dass diese Lösungsänderung durch Addition geschieht. Ich brauche das, um mit großen Arrays zu arbeiten, die Anzahl der Zeilen, Spalten des kleineren Arrays wird immer ein Faktor des größeren Arrays sein.

Wenn man das obige Array auf ein 2 mal 2 Array reduziert, würde das (was ich will) ergeben:

%Vor%

Ich habe diese Funktion, die es gut macht:

%Vor%

Ich habe die Beispiele schon lange durchgesehen, kann aber nichts finden, was hilft.

Gibt es einen schnelleren Weg, dies zu tun, ohne die Schleifen zu brauchen?

    
fraxel 21.05.2012, 12:55
quelle

2 Antworten

21

Mit Ihrem Beispiel:

%Vor%

gibt zurück:

%Vor%

Nun erstellen wir eine allgemeine Funktion ...

%Vor%

funktioniert für Ihre Beispiele:

%Vor%     
eumiro 21.05.2012, 13:08
quelle
3
  

Ich bin sicher, dass es einen besseren / intelligenteren Ansatz ohne all diese schrecklichen Schleifen gibt ...

Hier ist eine Möglichkeit, um das explizite Durchlaufen jedes Elements von data zu vermeiden:

%Vor%

Auf meinem Rechner ist das ungefähr 30% schneller als Ihre Version (für shrink(a, 2, 2) ).

    
NPE 21.05.2012 13:03
quelle

Tags und Links