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 Optimierung

 

formater
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 10.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.10.2008, 13:20     Titel: Code Optimierung
  Antworten mit Zitat      
Ich hab ein m-File und moechte es ablaufen lassen, aber mein PC schafft das nicht, weil der Code zu riesig oder aufwendig, kann jemand bitte einen Blick darauf werfen und mir vielleicht ein paar Tips zur Optimierung des Codes geben??

P.S.: Schaut ihn euch an, aber lasst ihn lieber nicht laufen.

Out_of_plane.m
 Beschreibung:

Download
 Dateiname:  Out_of_plane.m
 Dateigröße:  51.73 KB
 Heruntergeladen:  649 mal
Private Nachricht senden Benutzer-Profile anzeigen


mb_matlab
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 02.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2008, 21:01     Titel:
  Antworten mit Zitat      
Ach du schande, zuerst mal würde ich mit Hilfe von Cell Arrays oder mehrdimensionalen Arrays und Schleifen den Code vereinfachen, damit du nicht alles zig mal schreiben musst. Statt

Code:

Yf1z1zsummeges15 = zeros(1,groessef(2));
Yf1z1zsummeges16 = zeros(1,groessef(2));
Yf1z1zsummeges17 = zeros(1,groessef(2));
 


würde ich

Code:

zz = zeros(1,groessef(2));
Yf1z1zsummeges{15} = zz;
Yf1z1zsummeges{16} = zz;
Yf1z1zsummeges{17} = zz;
 


oder

Code:

Yf1z1zsummeges = zeros(1,groessf(2), 48);
 


schreiben (wobei du ein Haufen leere Cells oder nicht verwendete Elemente verschwenden würdest, aber egal).

In gefühlten 100 Zeilen rechnest du später oft fast das gleiche:

Code:

Yf1z1zsumme15(z,:) = psi1.*psi5./(roh.*h.*lx.*ly.*(wmn.^2-w.^2));
Yf1z1zsumme16(z,:) = psi1.*psi6./(roh.*h.*lx.*ly.*(wmn.^2-w.^2));
Yf1z1zsumme17(z,:) = psi1.*psi7./(roh.*h.*lx.*ly.*(wmn.^2-w.^2));
 


Stattdessen:

Code:

rr = 1./(roh.*h.*lx.*ly.*(wmn.^2-w.^2));
Yf1z1zsumme15(z,:) = psi1.*psi5.*rr;
Yf1z1zsumme16(z,:) = psi1.*psi6.*rr;
Yf1z1zsumme17(z,:) = psi1.*psi7.*rr;
 


Und so geht es weiter. Du kannst sicher einen Faktor 1000 an Beschleunigung erreichen schätze ich...

Gruß
Markus
Private Nachricht senden Benutzer-Profile anzeigen
 
formater
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 10.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2008, 16:13     Titel:
  Antworten mit Zitat      
Danke, schon mal ein Anfang,aber nicht die Welt. Fuer weitere Ideen waere ich dankbar.
Private Nachricht senden Benutzer-Profile anzeigen
 
mb_matlab
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 02.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2008, 00:03     Titel:
  Antworten mit Zitat      
Du kannst ja die Vorschläge umsetzen und dann deinen Coce noch mal schicken. Vermutlich ist er jetzt etwas übersichtlicher und die nächsten Schritte lassen sich leichter finden.

Gruß
Markus
Private Nachricht senden Benutzer-Profile anzeigen
 
formater
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 52
Anmeldedatum: 10.09.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.11.2008, 16:18     Titel:
  Antworten mit Zitat      
Hab das File in 4 Files aufgeteilt,jetzt braucht jedes rund 15 sec ,damit kann ich leben.Danke
Private Nachricht senden Benutzer-Profile anzeigen
 
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.