|
|
Geschwindigkeit optimieren: Array in Array einfügen |
|
Mandel |

Forum-Fortgeschrittener
|
 |
Beiträge: 57
|
 |
|
 |
Anmeldedatum: 30.09.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.10.2012, 12:27
Titel: Geschwindigkeit optimieren: Array in Array einfügen
|
 |
Hallo zusammen ...
Ich habe hier "ein paar" Rechnungen durchzuführen, bei denen immer wieder ( zT. verschiedene) 3D-Arrays in ein anderes "eingefügt" werden müssen.
Das sieht dann zZ zB so aus:
Da die Arrays aber recht groß sind (512x512x512) dauert das doch recht lang. Da diese Operation oft ausgeführt werden muss (mit jeweils verschiedenen ax, bx, ... komme ich unterm Strich auf Laufzeiten von 24-48h. Und da das ganze ggf. mehrmals wiederholt werden soll, hoffe ich, dass man da etwas an der Geschwindigkeit optimieren kann
Hat vielleicht jemand eine gute Idee?
Danke schon mal
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 10.10.2012, 16:25
Titel: Re: Geschwindigkeit optimieren: Array in Array einfügen
|
 |
Hallo Mandel,
Es ist niocht möglich, eine einzelne aus dem Kontext gerissene Zeile bzfgl. der Laufzeit zu optimieren.
Matlab sollte gerade für solche Array-Operationen sehr schnell sein, aber es kommt immer darauf an, ob Du z.B. wegen einer fehlenden Pre-allocation Disk-Swapping verwendest, also auf der Festplatte rechnest, oder nicht. Solche Details lassen sich teilweise mit dem Profiler herausfinden. Am besten wäre es aber hier ein lauffähiges kleines Beispiel zu posten, so dass wir sinnvolle Verbesserungsvorschläge machen können.
Gruß, Jan
|
|
|
Mandel |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 57
|
 |
|
 |
Anmeldedatum: 30.09.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.10.2012, 23:51
Titel:
|
 |
|
 |
|
Vielen Dank erstmal für die Antwort.
Gleich vorraus: Ich kenne mich wirklich nur so viel wie nötig mit Matlab aus, daher möge man mit mir bitte nicht zu hart ins Gericht gehn
Soweit ich das sehe wird nix auf die Platte geschrieben. Es scheinen einzig Operationen im RAM zu sein.
Hintergrund des ganzen Problems ist, dass ich gern eine 3D-Faltung umgehen möchte. Denn diese ist bei komplexen 512x512x512 Arrays irgendwie sehr Speicher- und Rechenintensiv
Das Gute ist, dass der Kern zwar eine recht gefüllt 3D-Matrix ist, die "Struktur" mit der gefaltet werden soll aber nur eine 2D-Fläche in der Mitte einer 3D-Matrix ist.
Mein "genialer" Gedanke war also die Faltung nachzuahmen, indem ich den Kern multipliziert mit dem Wert der 2D-Struktur an der jeweiligen Stelle einfach an dort einfüge wo er hin gehört, dann zum nächten Pixel gehe usw. ... Ich hoffe ihr versteht was ich meine
Als Code ausgedrückt sieht das so aus:
Wobei man dazu sagen muss, dass beide Arrays gleich groß sind und P(x,y) schon nur die 2D-Struktur ist.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|