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

Werte nach Datum sortieren

 

Dexter
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 15:21     Titel: Werte nach Datum sortieren
  Antworten mit Zitat      
Hallo Leute,

ich hänge gerade an einem kleinen Problem. Und zwar erstelle ich mir aus einem Textfile mehrere Variablen. Eine davon enthält das Datum in dieser Form:

Code:

b =[01.01.2014
01.02.2014
01.02.2014
01.05.2014
01.08.2013
02.10.2011]
usw..
 

Liegt also dementsprechend als cell vor.
Diese Variable möchte ich aufsteigend sortieren. Das versuche ich, indem ich das cell array zunächst in ein "sortierbares" Format umbaue. Dann sortiere ich und müsste es zurückwandeln.

Code:

x = datenum(b, 'dd.mm.yyyy');
xs = sort(x);
 


Damit zum ersten Problem...Wie bekomme ich die sortierten Daten wieder in die alte Form? Eine mir bekannte Umwandlung ist
Code:
xs = datestr(x,'dd.mm.yyyy');
. Allerdings kann ich damit hinterher nicht viel anfangen.

Ein weiteres Problem ist, das ich zudem einen weiteren Vektor habe, in dem eine passende Zahl zu jedem Datum steht. Soll heißen, dieser Vektor muss direkt mit sortiert werden.

Viele grüße,
Dexter
Private Nachricht senden Benutzer-Profile anzeigen


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 25.06.2014, 15:30     Titel:
  Antworten mit Zitat      
Hallo,

wenn die Daten als Cell vorliegen, dann präsentiere sie uns doch auch als cell Wink.
Du hast es ja fast alles fertig. sort() gibt dir auch die Indizes zurück, wie man den Vektor vertauschen muss, damit die Sortierung stimmt. Zudem willst du wohl datestr dann auf den sortierten Vektor anwenden. Insgesamt etwa so:
Code:
b ={'01.01.2014'
'01.02.2014'
'01.02.2014'
'01.05.2014'
'01.08.2013'
'02.10.2011'};
zahlen = 1:6;
x = datenum(b, 'dd.mm.yyyy');
[xs, idx] = sort(x);
y = datestr(xs, 'dd.mm.yyyy');
zahlen = zahlen(idx);


Viele Grüße,
Nras
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 15:42     Titel:
  Antworten mit Zitat      
Okay, da war es ja nur noch ein kleiner Schritt am Ende. Danke!

Aber...nun habe ich noch das Problem, dass die Variable "y" ein char ist. Das hätte ich aber lieber als double, da ich es im Nachhinein in Excel schieben muss.

Deswegen die frage, ob ich das
Code:
einfach wieder "rückgängig" machen kann, nachdem ich sortiert habe?
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 25.06.2014, 16:00     Titel:
  Antworten mit Zitat      
Was war es denn in der Variable b vorher? Da müssten dass doch auch keine Zahlen gewesen sein, richtig?
Private Nachricht senden Benutzer-Profile anzeigen
 
Dexter
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 68
Anmeldedatum: 22.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2014, 16:07     Titel:
  Antworten mit Zitat      
Aha meine eigene Dummheit stand mir im Weg. Aus irgend einem Grund war ich der Überzeugung b wäre double. Es ist aber ja cell, wie ich selber oben schon geschrieben habe. Embarassed

habe es nun einfach mit
Code:

umgewandelt.

Danke für die Hilfe! Very Happy
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 - 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.