|
|
mean auf variable Anzahl von Vektorelementen anwenden |
|
Pelle |

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 19.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.04.2011, 23:21
Titel: mean auf variable Anzahl von Vektorelementen anwenden
|
 |
Hallo liebe Matlabber,
mir stellt sich gerade folgendes Problem:
Mir liegt ein Vektor "Anfang" und ein Vektor "Ende" vor. Beide beinhalten Indizes für einen Vektor "V". Aus den Werten, die zwischen den Indizes liegen sollen jeweils Mittelwerte berechnet werden.
Bislang schaffe ich das nur mit einer for-schleife:
Wie kann ich diese for-schleife vermeiden?
Vielen Dank für eure Hilfe!
|
|
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 10.04.2011, 12:21
Titel:
|
 |
Warum willst du die Schleife vermeiden? Schleifen können durchaus schneller als Einzeiler sein und sind oft besser zu verstehen.
|
|
|
Pelle |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 19.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.04.2011, 12:41
Titel:
|
 |
Die for-schleife kann einige 1000 Schritte beinhalten. Ich hab nur die info, dass in Matlab for-schleifen zu vermeiden sind....
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 10.04.2011, 12:47
Titel:
|
 |
Dauert die Berechnung so signifikant lange? Ich bezweifle, dass es mit einem Einzeiler schneller gehen würde, da die Hauptrechenzeit nicht an der Schleife, sondern an der Mittelung liegen wird. Und mehrere 1000 Durchläufe ist nicht viel..
|
|
|
Pelle |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 19.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.04.2011, 13:01
Titel:
|
 |
kann ich dir nicht sagen...schreibe gerade nur den code mit der Vorgabe:
so schnell wie möglich.
Auf die eigentlichen Daten habe ich keinen Zugriff.
Gehts also in einem eleganten einzeiler oder nicht?
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 10.04.2011, 13:06
Titel:
|
 |
Ich sage nein, und eleganter sowieso nicht..
muss noch geändert werden, sonst wird ein quadratisches Array präallokiert.
|
|
|
Pelle |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 19.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.04.2011, 13:09
Titel:
|
 |
|
|
Sco |

Forum-Meister
|
 |
Beiträge: 699
|
 |
|
 |
Anmeldedatum: 15.08.10
|
 |
|
 |
Wohnort: Dundee
|
 |
|
 |
Version: 2008a, 2010a
|
 |
|
|
 |
|
Verfasst am: 10.04.2011, 14:37
Titel:
|
 |
Hallo eupho,
könntest du mir freundlicherweise mal ein Beispiel zeigen wie das Problem mit einem Einzeiler bzw. ohne Schleife aussehen würde. Ich habe nähmlich gestern keine Lösung ohne Schleife gefunden. Ansonsten stimme ich dir allerdings zu, bei solch "einfachen" Schleifen sind Schleifen in Malab auch sehr schnell.
MFG
Sco
|
|
|
eupho |

Forum-Meister
|
 |
Beiträge: 777
|
 |
|
 |
Anmeldedatum: 07.01.09
|
 |
|
 |
Wohnort: Marburg
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 10.04.2011, 14:45
Titel:
|
 |
Hallo Sco,
Zitat: |
Gehts also in einem eleganten einzeiler oder nicht? |
Zitat: |
Ich sage nein, und eleganter sowieso nicht.. |
Wie gesagt, ich wüsste auch nicht wie
Viele Grüße,
Daniel
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.04.2011, 01:03
Titel: Re: mean auf variable Anzahl von Vektorelementen anwenden
|
 |
Hallo Pelle,
Können die Bereiche in Anfang:Ende sich überlappen?
Dies wäre wohl etwas schneller:
Der Aufruf der M-Funktion MEAN hat einen Overhead, den man per compilierten Funktionen SUM / LEN vermeiden kann.
Mit ACCUMARRAY sollte es zwar auch funktionieren, dazu müsste man aber einen großen temporären Vektor erstellen, was im Allgemeinen eine Menge Zeit raubt.
Gruß, Jan
|
|
|
Pelle |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 5
|
 |
|
 |
Anmeldedatum: 19.03.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.04.2011, 18:44
Titel:
|
 |
Hallo Jan,
das läuft, danke für den Tip!!!
Grüße,
Pelle
|
|
|
|
|
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.
|
|