Die letzte Summation würde ich gerne per sum() berechnen. Mit reshape bekomme ich jedoch so eine Zerlegung nicht hin.
Kann mir da jemand einen Tip geben? Es handelt sich bei dem Beispiel um eine starke Vereinfachung. Die Anwendung arbeitet mit Bildern und somit mit Matrizen der Größe 512*512 oder größer. Die Größen der Matrix und der gewünschten Blöcke varieren
Mein Ziel ist etwas der Form
Code:
a = reshape(a,blockgroesse1,blockgroesse2,[]);
a_d = 1/4*sum(a);
@winkow
ja, sowas, nur wenn ich da mit for-Schleifen anfange, läuft das Programm ewig oder Matlab friert ein. Deswegen suche ich ja einen eleganten Weg. Schleifen und Matlab vertragen sich halt überhaupt nicht.
@Sirius3
Das sieht gut aus. Das könnte mich ans Ziel bringen. Ich werde es morgen probieren
nur wenn ich da mit for-Schleifen anfange, läuft das Programm ewig oder Matlab friert ein. Deswegen suche ich ja einen eleganten Weg.
Dann wäre es gut gewesen, diese Information von Anfang an zu haben
Zitat:
Schleifen und Matlab vertragen sich halt überhaupt nicht.
Das würde ich so nicht sagen. Schleifen sind tendentiell langsamer, dafür aber teilweise weniger speicherintensiv.
Wie groß ist die Matrix denn insgesamt? Gerade bei 64bit-Systemen kann das Betriebssystem zu swappen anfangen, wenn die Matrix sehr groß ist, und dann wirkt der Rechner ziemlich tot.
Ok, ich habe eine alte Applikation, die durch die Schleifen stark ausgebremst wurde. Nun scheint sie aber deutlich Schneller zu laufen. Dann muss ich wohl meine Einstellung zu Schleifen ändern
Und danke für eure hilfreichen Tipps.
Ich nutze jetzt
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.