|
|
datestr 2 datenum performance |
|
joekey |

Forum-Century
|
 |
Beiträge: 169
|
 |
|
 |
Anmeldedatum: 03.04.08
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: 2011b
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 09:44
Titel: datestr 2 datenum performance
|
 |
Hallo,
ich erhalte Datum und die Zeit in einer Zelle. Beide stehen als String zur Verfügung. Insgesamt um die 50000 Zellen. Ich benötige diese aber als datenum Format. Ich wandle sie folgendermaßen um:
Existiert eine performantere Lösung? Vor allem was die Zeilen 2 und 3 angeht?
Danke Joe
|
|
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 09:56
Titel:
|
 |
Ich glaube, dass nicht die Performance der Konvertierungsbefehle an sich das Problem ist, sondern der Zugriff auf die Zellen.
Das Beispiel ist so nicht lauffähig. Wie sieht a genau aus (Mit 10 und nicht 50000 einträgen )
Andreas
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 10:19
Titel:
|
 |
Hallo,
ein Vorschlag, um den Zugriff auf die Cells effizienter zu machen:
Grüße,
Harald
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 10:40
Titel:
|
 |
Hallo
ich glaube man kann es effizienter gestalten, ohne Schleifen ungefähr so
|
|
|
joekey |
Themenstarter

Forum-Century
|
 |
Beiträge: 169
|
 |
|
 |
Anmeldedatum: 03.04.08
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: 2011b
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 11:38
Titel:
|
 |
Hallo an alle
vielen Dank für eure Vorschläge und sorry für das nicht funktionierende Beispiel.
Hier noch mal mit dem Vergliech der Ergebnisse des Vorschlags von denny.
Elapsed time is 0.371930 seconds.
Elapsed time is 0.030698 seconds.
Könntest du mir denny bitte erklären, warum dein Code viel schneller ist?
Danke Joe
|
|
|
joekey |
Themenstarter

Forum-Century
|
 |
Beiträge: 169
|
 |
|
 |
Anmeldedatum: 03.04.08
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: 2011b
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 11:52
Titel:
|
 |
Das ist interessant,
ich habe mich anscheinend zu früh gefreut. Die Tests mit 50000 Datensätzen haben dies ergeben:
%joe
Elapsed time is 21.863343 seconds.
%denny
Elapsed time is 29.215055 seconds.
Warum ist es so??? Bei vielen Datensätzen scheint meine Variante performater zu sein.
LG Joe
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 12:38
Titel:
|
 |
Hallo,
mich würde interessieren, welche MATLAB Version und was für ein Rechner. Ich habe das Beispiel auf 60000 erweitert mit
und auf meinem (nicht wirklich überdurchschnittlichen) Laptop mit R2008b brauchen beide Versionen unter 2s...
Titus
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 12:44
Titel:
|
 |
Hallo,
so oder so, auch bei der Zeit würde ich das Format mitgeben, ist immer sicherer und schneller, als wenn MATLAB raten muss:
Ciao,
Titus
|
|
|
joekey |
Themenstarter

Forum-Century
|
 |
Beiträge: 169
|
 |
|
 |
Anmeldedatum: 03.04.08
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: 2011b
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 13:29
Titel:
|
 |
Hallo Titus,
mein Comp: intel core duo 2GHz, 4 GB Ram. Matlab 2009
Ka. ob das damit zu tun haben könnte (denke aber nicht), aber die genannte Funktion benutze ich innerhalb von einer Klassenmethode. Davor werden die Daten von einem File geladen, und anschließend umgewandelt.
LG Joe
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 13:44
Titel:
|
 |
Hallo Joe,
also besser als mein Rechner .
Könntest Du diesen Code einfach nochmal laufen lassen? Würde mich interessieren. So oder so, viel lässt sich da nicht mehr rausholen ...
Titus
|
|
|
joekey |
Themenstarter

Forum-Century
|
 |
Beiträge: 169
|
 |
|
 |
Anmeldedatum: 03.04.08
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: 2011b
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 13:53
Titel:
|
 |
Also
dein letztes Beispiel produzierte: t1 = 2.32
gegenüber dem code ohne ('HH:SS:SS') der mit 2,57 abgeschlossen hat.
Ich werde noch mal schauen warum der code als script schnell läuft, und innerhalb der Klasse viel langsamer. So weit vielen Dank für eure hilfe.
LG Joe
|
|
|
Titus |

Forum-Meister
|
 |
Beiträge: 871
|
 |
|
 |
Anmeldedatum: 19.07.07
|
 |
|
 |
Wohnort: Aachen
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.01.2010, 13:55
Titel:
|
 |
Hallo,
zu diesem Zweck würde ich den Profiler anschmeißen ...
Titus
|
|
|
|
|
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.
|
|