|
|
Formatierung Spalte Matrix zu Datum und Sortierung |
|
jh4711 |

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 10.12.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.12.2017, 16:34
Titel: Formatierung Spalte Matrix zu Datum und Sortierung
|
 |
Hallo zusammen,
ich habe eine Datenbank, welche in der ersten Spalten Datumsangaben besitzt und in der ersten Reihe Überschriften. Nun möchte ich diese Datenbank nach den Datumangaben in Spalte 1 sortieren (von alt nach neu).
Ein Ausschnitt aus meiner Datenbank:
(Sie scheint in dem Auszug sortiert, beinhaltet allerdings monatliche Daten zum 01.02.2... usw.)
Leider kann ich nicht die komplette erste Spalte als Datum deklarieren:
Ich könnte die erste Spalte ab Zeile 2 ausschneiden, formatieren, mit sortrows(..) sortieren und wieder einfügen. Dies scheint mir aber sehr umständlich. Ich bräuchte diese Datenbank mit der Formatierung der ersten Spalte, da ich später explizit auf verschiedenen Daten zugreifen möchte(z.B. vom 01.11.2013 und 01.04.2016). Habt ihr Tipps?
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.12.2017, 20:18
Titel:
|
 |
Hallo,
habe ja gerade auf einen anderen Beitrag geantwortet. Bekommst du nicht einen Table? Tables sind wesentlich angenehmer als solche Cell Arrays.
Wenn du die Daten aus Excel als Table einliest, sollten sie direkt als datetime vorliegen. Dann kannst du mit . auf Spalten zugreifen (wie bei Strukturen auf Felder)
Grüße,
Harald
|
|
|
jh4711 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 10.12.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.12.2017, 20:22
Titel:
|
 |
Hallo Harald,
habe Sie über Access geladen. Dort waren sie als Datum angegeben und die dritte Spalte als double, aber keine der Formate wurde übertragen.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.12.2017, 20:25
Titel:
|
 |
Hallo,
dann mach mal
Kann es sein, dass du mit einer älteren MATLAB-Version arbeitest? Hätte gedacht, dass das schon länger Default ist...
Grüße,
Harald
|
|
|
jh4711 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 10.12.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.12.2017, 20:36
Titel:
|
 |
Hallo Harald,
ich verwende Matlab R2017b (64-bit).
Habe einfach mal setdbprefs eingegeben und es kam folgendes:
Er hat jetzt nach "deinem" Befehl dort table stehen. Vielleicht lag da der Fehler. Ich frage mich, warum dort 'cellarray' als default eingestellt war.
Leider dauern die Funktionen alle was länger. Habe mehrere Millionen Daten. Werde also später berichten. Danke (mal wieder)
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 13.12.2017, 23:04
Titel:
|
 |
Hallo,
Empfehlung wäre dann, sich erst mal nur die ersten paar 100 Zeilen zu holen und zu schauen, ob damit alles klappt. Dann auf den großen Datensatz loslassen.
Es ist möglich, dass ich die Einstellung mal vor etlichen Releases gemacht habe und dass es übernommen wurde.
Bei so großen Daten verbietet sich ein Cell Array der ursprünglichen Form selbst, da es einen großen Speicheroverhead hat.
Grüße,
Harald
|
|
|
jh4711 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 10.12.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.12.2017, 13:35
Titel:
|
 |
Hallo Harald,
irgendwie hat er meine Antwort nicht gesendet. Habe mich gerade etwas gewundert.
Das Problem ist leider nach wie vor, dass meine erste Spalte kein "Datum" ist und auch irgendwie nicht deklariert werden kann. Das brauche ich aber für die Sortierung:
Wie man sieht, sortiert sortrows() zwar, aber erst nach Jahren, dann nach Monaten. Eine Deklarierung schlägt fehl.
Ich habe schon über etliche Funktionen versucht, die erste Spalte in eine Nummer/double zu verwandeln, bekam aber immer Fehlermeldungen
Auch eine Umstellung nach Jahr-Monat-Tag zur Sortierung schlägt fehl:
Dabei ist temp doch eine char-Array:
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 16.12.2017, 14:56
Titel:
|
 |
Hallo,
statt
solltest du
oder noch besser
verwenden.
Wenn du nach dem Datum sortieren willst, dann lass es doch im Table:
Grüße,
Harald
|
|
|
jh4711 |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 37
|
 |
|
 |
Anmeldedatum: 10.12.17
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.12.2017, 10:58
Titel:
|
 |
Natürlich klappt es hervorragend... Was eine richtige Klammer so ausmacht.
Danke!
|
|
|
|
|
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.
|
|