Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Graphics and GUIs with MATLAB

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Matlab Funktion heute langsamer als gestern

 

dudemeister
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.08.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2018, 11:13     Titel: Matlab Funktion heute langsamer als gestern
  Antworten mit Zitat      
Hey liebe Forum Gemeinde!

erst einmal vielen lieben Dank für die Hilfe und Tips die ich bisher hier leechen konnte, dieses Forum ist gold wert und hat mir extrem geholfen bisher Smile
Leider konnte ich für mein mysteriöses Problem welches ich jetzt habe keine Antwort mit der Suchfunktion finden.

Ich habe eine Funktion erstellt, in welcher ich oberschwingungsbehaftete Signale generiere, also Zeitreihen von Schwingungen, die dann wiederum überlagert werden. Nun habe ich deise in eine Monte Carlo Simulation implementiert. Gestern als ich deise gestartet habe, dauerte die Signalgenerierung ~3.5 s. Heute sind es über 10 s.
Bei jedem Durchlauf werden neue Signalvektoren generiert und die alten nicht gespeichert. Das sollte dann doch eigentlich kein Speicherproblem sein?
Weiss vielelciht jemand von euch woran diese Laufzeitänderung liegen kann?

viele liebe Grüße
Patryk Smile
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 08.08.2018, 11:43     Titel:
  Antworten mit Zitat      
Ein paar Ideen...

1. Mit dem MATLAB Profiler schauen wo die meiste Zeit verbraucht wird. Das hilft natürlich nicht direkt, wenn man die Ergebnisse von gestern ´nicht hat, aber bringt vielleicht weitere Ideen.

2. Dinge wie anders sein können: Zugriff auf Daten von anderen Rechnern im Netz, MS Excel und Co.; Bei Parallelrechnungen: Ist die gleiche Anzahl Kerne verfügbar?

3. Virenscannerthemen

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
dudemeister
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.08.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2018, 17:34     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Antwort Andreas,
Also ich führe eine Simulation durch, die grob gesagt eine große Schleife ist, wobei tausende male Sinussignale generiert werden. Ich habe nun den Tag über die Simulation wieder laufen lassen und festgestellt, dass immer mehr Arbeitsspeicher belegt bzw. benutzt wird. von anfänglich 3GB ist er innerhalb von 5 Stunden und ca 2200 Simulationdurchläufen auf knappe 9 GB angestiegen und die ein Durchlauf hat mehr als doppelt so viel Zeit veranschlagt.

Die Signalgenerierung sieht fogendermaßen aus:

Code:

u1_h_unc=zeros(50,length(t));
u1_h_uncp5=zeros(50,length(t));
u1_h_uncn5=zeros(50,length(t));
for n=1:50
    u1_h_unc(n,:) = (u1_h_amp(n)*div1(n)) * sin(2*pi*(n*fn).*t + (delta_angle_h1(n) + delta_angle_unc_h1(n)));
    u1_h_uncp5(n,:) = (u1_h_amp(n)*div2(n)) * sin(2*pi*((n*fn)+5).*t + (delta_angle_h1(n) + delta_angle_unc_h1(n)));
    u1_h_uncn5(n,:) = (u1_h_amp(n)*div2(n)) * sin(2*pi*((n*fn)-5).*t + (delta_angle_h1(n) + delta_angle_unc_h1(n)));
end

% es werden viele solcher signale erzeugt und dann am ende summiert:
% Summe aller unsicherheitsbehafteten Harmonischen
u1_h_unc = sum(u1_h_unc(:,:))+sum(u1_h_uncp5(:,:))+sum(u1_h_uncn5(:,:));          % Summe der Harmonischen
u1_zh_unc = sum(u1_zh_unc(:,:));        % Summe der Zwischenfrequenten
u1_hf_unc = sum(u1_hf_unc(:,:));        % Summe der höheren Frequenzen
u1_unc_sum = u1_h_unc+u1_zh_unc+u1_hf_unc; % Summe aller OS
% Summe der unsicherheitsbehafteten Grundschwingung
% undunsicherheitsbehafteten OS
u1_unc = u1_base_unc'+u1_unc_sum;       % Unsicherheitsbehafteter Wert der Grundschwingung und alle h, zh,hf OS
u1_raw_unc = u1_unc';

 


Die so erzeugten Zeitreihen werden dann aus der Funktion ausgegeben und an eine weitere Funktion übergeben. Dies passiert dann schleifenweise. sollte ich evtl. löschbefehle für die zeitreihen nach deren verwendung einbauen?
vielen lieben dank nochmal Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
dudemeister
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.08.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2018, 19:19     Titel:
  Antworten mit Zitat      
verdamtme axt meine Axt meine lieben Genossen,
vielleicht aht es auch was mit der endgültigen Speicherung zu tun...
ich kreire für die ergebnisse nämlich cellarrays
[code]
F_spektrum = cell(1,M);
[code/]
nun werden aber in jedem cell array wiederrum cell arrayrs mit den ergebnis matrizen gespeichert, sodass, wenn cih schlsusendlcih einen einzelnen wert abfragen will eingebe:
[code]
F_spektrum{1,1}{1,1}(1,1)
[code/]

verzeiht bitte meine konfuse Art, ich beschäftige mich erst seit ca einem halben jahr intensiver mit matlab und bin jetzt erst bei meiner emga simulation auf dieses problem gestoßen... ich kann ja nicht cells in cells präallokieren oder? zumindest habe ich keien anhaltspunkte gefunden, ausser wenn ich jedes einzeln definiere anch der art
[code]
x_a=cell(8,1);
x_b=cell(8,1);
F_spektrum = {x_a,x_b}
[code/]
nach dem schema vorgehend müsste ich aber 100000 Werte in die geschweifte klammer anlegen um meine benötigte größe zu erhalten... und dann besteht x_a auch noch aus acht 5000x6 Matrizen... oh mannomann ich hoffe jemand versteht mein konfuses geblubber ^^
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.