habe einen Code geschrieben, welcehr Messdaten (.csv ) Dateien einliesst und mir diese in data_struct als Cell Array speichert.
Das klappt bis 5000 Dateien auch super. Nun habe ich jedoch 14.000, er arbeitet und bei 44% bleibt er stehen, es tut sich nichts mehr. Auch keine Fehlermeldung :/
function ret = mycsvread(file,header=0,cols=Inf) if cols==Inf
ret.values=dlmread(file ,';',header,0);
else
ret.values=dlmread(file ,';',header,0)(:,1:cols);
end if header>0
f=fopen(file);
for n = 1:header
ret.header{n}=fgetl(f);
end fclose(f);
end end
%wo_y = find(B(:,6)==y);
%eval(['b.cycle',num2str(y),' = B(wo_y,:);']);
data_struct(i3)=mycsvread(b,3,7); % Funtionsaufruf mit b String
Ich denke es lag am Speicher, habe es nun so gelöst das die Datei ausgelesen wird. Der Wert den ich brauche, in einem Array gespeichert wird und danach data_struct wieder gelöscht wird.
Ich lege also immer nur ein data_struct(1) an, quasi temporär.
Nun läuft es schon wesentlich besser. ABER:
Es dauert sehr lange. Gibt es eine Alternative zu dlmread? habe gelesen das dieses sehr langsam ist.
Es dauert sehr lange. Gibt es eine Alternative zu dlmread? habe gelesen das dieses sehr langsam ist.
Statt theoretischer Ideen über die Performance einzelner Befehle ist der Profiler die beste Methode um heraus zu bekommen, wo wirklich die meiste Zeit benötigt wird. Erst wenn der Profiler auch DLMREAD als Flaschenhals erkennt, lohnt es sich darüber nachzudenken.
Wenn aber nur 5% der Rechenzeit in DLMREAD stecken, wird es sich kaum lohnen, hier etwas effizienteres zu verwenden.
Gruß, Jan
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
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.