|
Elaine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 08.06.2009, 15:17
Titel: Effizienzproblem
|
 |
|
 |
|
Hallo,
ich bin gerade dabei, mein Script ein wenig zu überarbeiten, damit es bei der Ausführung nicht so viel Zeit benötigt.
Hier ist ein kleiner Teil des Gesamtcodes, der auf 1. Sicht vielleicht nicht lang für die Ausführung braucht, die Schnelligkeit des Gesamtablaufs aber sehr einschränkt.
(Ziel / Motivation: Ich möchte mit dieser und anderen Abänderungen meinen Gesamtablauf unter 4 Stunden bekommen.
Momentan würde er bei mehreren Tagen liegen. (Bei Input von entsprechend vielen Eingabewerten um die 30.000))
1. Kann man unten stehenden Code auch ohne for-schleifen realisieren?
2. Wenn nicht, gibt es einen effizienteren Weg, den ich gehen kann, um schneller auf die Lösung meines Problems zu kommen?
3. Angenommen fden ist ein Vektor von Funktionen. Kann ich das in die Funktion int oder eine ähnliche Funktion irgendwie einbringen oder brauch ich hierfür auch eine extra for-schleife?
4. Ist 'int()' die richtige Wahl oder gibt es andere Integralfunktionen, welche schneller arbeiten?
Vorliegen habe ich einen Vektor 'bereich'.
In diesem Vektor stehen Zahlen wie zum Beispiel 12.342 oder 7.649 .
'funkt' ist eine Funktion wie zB.
0.15*exp(-0.7*x^2)
Ich würde mich sehr freuen, wenn mir hierbei jemand helfen kann.
freundliche Grüße
Elaine
|
|
|
|
|
Elaine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2009, 09:54
Titel: Korrektur
|
 |
Korrektur:
3. Angenommen 'funkt' ist ein Vektor von Funktionen. Kann ich das in die Funktion int oder eine ähnliche Funktion irgendwie einbringen oder brauch ich hierfür auch eine extra for-schleife?
|
|
|
Maddy |

Ehrenmitglied
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 02.10.08
|
 |
|
 |
Wohnort: Greifswald
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2009, 10:53
Titel:
|
 |
Ich würde vorschlagen die Integration nur einmal auszuführen (also aus der Schleife zu entfernen) und dann erst die Bereiche einzusetzen. So wie es jetzt da steht, wird jedesmal das Integral aufwendig berechnet. Das sollte die Ausführung deutlich beschleunigen.
_________________
>> why
The computer did it.
|
|
|
Elaine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2009, 12:36
Titel: danke & weitere Frage
|
 |
ok vielen Dank!
Ich habe das nun folgendermaßen ungeschrieben:
oder kann man das besser lösen?
Wenn ich nun einen Vektor von Funktionen habe, kann ich das nur mit einer for-schleife lösen oder gibt es eine Integralfunktion, die als Eingabe einen Vektor von Funktionen akzeptiert?
mit forschleife würde es so aussehen:
|
|
|
Elaine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2009, 12:50
Titel: korrektur
|
 |
Habe gerade gesehen, dass ja int schon einen Vektor von Funktionen annimmt. Jedoch ist jetzt das Problem die subs-Funktion.
Die folgende Lösung würde einen Fehler auswerfen.
Code:
Also doch besser bei der for-schleife bleiben oder gibt es eine andere Möglichkeit?
|
|
|
Elaine |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 09.06.2009, 13:11
Titel: Zusatz
|
 |
Hätte mich wohl mal anmelden sollen, damit ich editieren kann
Also mit for-schleife würde der Code so aussehen:
Jetzt sind die aktuellen Fragen:
Kann man dies effizienter gestalten?
Kann man die äußere for-schleife weglassen, wenn man anstelle von subs() etwas anderes benutzt (da keine Eingabe von Vektoren an 1. Stelle der subs-funktion möglich)?
vielen Dank schonmal.
freundliche Grüße
Elaine
|
|
|
|
|
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.
|
|