Verfasst am: 13.06.2011, 14:09
Titel: Effizienterer Code ohne Schleifen
Hallo Leute,
ich versuche meinen Code effizienter zu machen und so viele Schleifen wie möglich auszutauschen. Ein Problem wird durch folgendes Minimalbeispiel illustriert:
Ich möchte die letzte Schleife durch etwas schnelleres ersetzen (die Schleifen davor sind der Kreation des Minimalbeispieles geschuldet). Hat jemand einen Vorschlag für eine gute Lösung?
Es ist eventuell schlecht formuliert. Das Beispiel wäre sicher besser ohne dass c Einheitsmatrix ist. Es geht eher ums Prinzip der Multiplikation in dem Fall, wenn zwei Matrizen A und B mit A(:,:,i) und B(:,:,i) (für i=1:N) miteinander multipliziert werden sollen, aber eine Schleife über i vermieden werden soll.
Du kannst versuchen, mit diversen reshape-Befehlen die 4 Matrizen untereinander in eine einzige 12x3-Matrix b1 zu schreiben. Da diese ja dann 2-dimensional ist, kann man das Matrixprodukt b1 * c bilden. Im Ergebnis stehen dann die 4 Ergebnismatrizen untereinander.
Ist etwas wurschtelig, funktioniert aber sicher und ist wahrscheinlich deutlich schneller als die Schleife
Gruß tompie
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
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.