WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Code beschleunigen

 

Fred

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2007, 15:56     Titel: Code beschleunigen
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein sehr umfangreiches Programm in Matlab geschrieben und aus Gründen der Übersichtlichkeit ist der Code in viele einzelne M-Files aufgeteilt. Leider ist das Programm noch sehr langsam und ich würde es gern beschleunigen.

Meine Frage deshalb: Bringt es etwas die Codes der einzelnen M-Files in einen "endlos"-Code und ein M-File umzuwandeln? (Geht das überhaupt, wenn ich mit Klassen ("@Ordner") arbeite?

Oder ist es sinnvoller das Programm zu compilieren und wenn ja, wie mache ich das am besten wenn ich ich nicht die Namen aller Files (ca. 300) einzeln angeben will?

wie hier: mcc [-options] mfile1 [mfile2 ... mfileN]


gruß
Fred


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2007, 16:55     Titel:
  Antworten mit Zitat      
Zitat:
Bringt es etwas die Codes der einzelnen M-Files in einen "endlos"-Code und ein M-File umzuwandeln?

Nein

Zitat:
Oder ist es sinnvoller das Programm zu compilieren ...

Nein

Als erstes mit dem Profiler untersuchen an welchen Stellen Dein Programm die meisste Zeit verbrät. Danach diese M-Files etwas gezielter unter die Lupe nehmen. Ich weiss nicht wie gut Du Dich mit MATLAB auskennst - mag sein, dass nachfolgende Hinweise für Dich nutzlos sind:

Programmierst Du vektoriell oder mit Schleifen (wie die C/C++ Kollegen Smile )? Falls doch nicht vektoriell - üben, üben, üben... das ist der Schlüssel zu der MATLAB Performance...

MfG
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 06.09.2007, 17:06     Titel:
  Antworten mit Zitat      
Ich würde fürs erste auch erstmal die SUche mit dem Profiler empfehlen. IM matlab File-exchange gibt es auch eine Reihe schöner Anleitunge für effiziente schnelle Programmierung mit matlab - allerdings nur auf Englisch.

Ansonsten noch ein Tipp:

tic; meintest.m; toc

Gibt Dir die Zeit, die meintest.m zur Ausführung benötigt - Aber erst beim zweiten Aufruf, beim ersten Aufruf kommt noch die Zeit für die (nur einmalige) Kompilation mit dazu.

Ausser vektoriellen Programmieren fällt mir zum Beschleunigen noch folgendes ein:

lange Berechnungen von Formeln evtl. in maple zusammenfassen -> hat mir schon öfters geholfen.

Benötigte Interpolationen an festen Daten anstelle mit interp(,....'spline') mit der SplineToolbox (falls vorhanden) nur einmal durchführen und ablegen.

Daten einlesen mittels fscanf statt textread.
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2007, 13:01     Titel:
  Antworten mit Zitat      
mit TIC/TOC kriegt man nur die Gesamtzeit für die Ausführung, aber nicht wie diese Zeit sich zusammensetzt.

versucht mal mit:
Code:
profile on ; meintest.m ; profile report


bzgl. Vektorisierung kannst Du im FileExchange nachschauen - dort gibt es eine Menge an Tip&Tricks... wer sucht der findet... Wink

MfG
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.