|
|
|
for Schleife Vektorisieren |
|
| xel |

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 27.10.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 15:15
Titel: for Schleife Vektorisieren
|
 |
Guten Tag
Ich hätte da mal ein Problem.
ich habe gehört das eine for- Schleife oft nicht die eleganteste Lösung ist und wollte fragen ob man die for- Schleife in meinem Programm Vektorisieren kann ( wenn das so heißt) , nur weiß ich nicht wie das funktioniert. Ich wäre dankbar wenn mir jemand helfen könnte..
Vielen Dank
|
|
|
|
|
|
| Harald |

Forum-Meister
|
 |
Beiträge: 24.502
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 16:50
Titel:
|
 |
Hallo,
auf den ersten Blick würde ich sagen, dass das schwierig wird, da du eine Vektornorm bildest und das nicht direkt auf Matrizen übertragbar ist. Du müsstest wohl die Aufrufe von NORM auflösen und deinen Code etwas anpassen; die Frage ist aber, ob das die Mühe wert ist.
Vektorisierung ist nämlich vor allem dann interessant, wenn Code sehr lange braucht und die Zeit in for-Schleifen verbracht wird. Dann lässt sich oftmals ein Faktor 10 gewinnen. In deinem Fall kann ich mir das nur vorstellen, wenn du diese Funktion extrem oft aufrufst.
Vorschläge:
- überflüssige Klammern vermeiden; das erschwert das Lesen des Codes.
- Unveränderte Parameter (Ki_R, wi_R etc.) außerhalb der for-Schleife definieren.
Grüße,
Harald
|
|
|
|
| xel |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 7
|
 |
|
 |
Anmeldedatum: 27.10.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 17:18
Titel:
|
 |
Vielen Dank schon mal.
Ich habe das Programm jetzt mal ein wenig verändert, so dass die NORM-Bildung nicht mehr vorkommt. Wäre es nun möglich?
Ich denke das die Berechnungszeit für die Anwendung akzeptabel ist, dennoch würde es mich interessieren, wie man dies umsetzt (Vektorisieren)
Gruß Axel
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 30.11.2011, 20:43
Titel:
|
 |
Halllo xel,
Ich würde diese Schleife immer noch nicht vektorisieren. Die teuerste Funktion daran ist nämlich EXP, und daran ändert sich nichts, wenn man das auf eine Matrix anwendet.
Stattdessen würde ich weiter alle wiederholten Berechnungen vermeiden:
Ich habe bei der Berechnung von Z(i) eine Mutliplikation gespart und nur ein EXP pro Iteration verwendet. Kannst Du per TIC/TOC ein paar Timings machen?
Vektorisieren ist kein Zaubermittel. Es verlangsamt das Programm sogar, wenn das Allocieren der temporären Arrays viel Zeit benötigt. Zudem ist es niemals sinnvoll 30 Minuten in die Optimierung eines Programmteils zu stecken, dass nur wenige Sekunden Rechenzeit benötigen wird.
Gruß, Jan
Gruß, Jan
|
|
|
|
|
|
|
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.
|
|