|
|
Vektorisierter Code: Matrix aus zwei Vektoren erstellen |
|
Konstantin40 |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 14.05.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.05.2013, 17:45
Titel: Vektorisierter Code: Matrix aus zwei Vektoren erstellen
|
 |
Hallo zusammen,
das ist mein erster Eintrag: Also vorne weg ein Hallo an alle.
Ich schreibe in Matlab ein kleines Programm, dass große Datenmengen auswerten soll. Da das ganze mit for loops sehr lange dauert bin ich darauf gestoßen, dass man den code vektorisieren kann, wenn man auf for loops verzichtet und damit die Geschwindigkeit deutlich erhöht.
Mein ursprünglicher code sah so aus:
Die Idee ist jetzt folgendes hinzubekommen:
Leider funktioniert das nicht in zwei Dimensionen und es gibt folgenden Fehler:
"Subscripted assignment dimension mismatch.
Error in test (line 31)
Matrix(i,j) = i+j"
Hat jemand eine Idee wie ich solch eine Operation umsetzen kann?
Viele Grüße
Konstantin
|
|
|
|
|
Seban |

Forum-Meister
|
 |
Beiträge: 600
|
 |
|
 |
Anmeldedatum: 19.01.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab R2014b
|
 |
|
|
 |
|
Verfasst am: 14.05.2013, 18:32
Titel:
|
 |
Hallo Konstantin,
So sollte das gehen:
Beste Grüße,
Seban
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 14.05.2013, 18:38
Titel:
|
 |
for schleifen sind garnicht so langsam. mann sollte allerdings vorher den speicher anlegen.
nächste anmerkung ist das man als laufvariable nicht i benutzen sollte da das schon die imaginäre einheit ist
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 15.05.2013, 11:48
Titel:
|
 |
Hallo Winkow,
Dann hilft es noch spaltenweise auf den Speicher zuzugreifen, also die Schleife über den ersten Index nach innen zu ziehen. Dies liegt daran, dass der Speicher in Blöcken in die Prozessor-caches geladen wird. Der Speicherzugriff auf zwei Double-Werte dauert daher fast genau so lange wie der Zugriff auf ein einzelnes Element.
Gruß, Jan
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 16.05.2013, 14:46
Titel:
|
 |
Jan S hat Folgendes geschrieben: |
Hallo Winkow,
Dann hilft es noch spaltenweise auf den Speicher zuzugreifen, also die Schleife über den ersten Index nach innen zu ziehen. |
und wieder was gelernt danke
|
|
|
|
|
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.
|
|