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

Datum konvertieren

 

Biba

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2008, 17:01     Titel: Datum konvertieren
  Antworten mit Zitat      
Hallo,

ich hab ein Problem. Ich habe eine Funktion, die am Ende Matrix mit drei Spalten(Index, Simulationszeit, Ausgangsleistung) ausgibt. Die mittlere Spalte ist die "Simulationszeit", die durch die Eingaben "Startime" und "Stoptime" berechnet wird.

Problem ist nun folgendes. Die Simulationszeit wird per serialnumber in der mittleren Spalte ausgegeben ausgegeben:


0.0000 0.0000 0.2954
0.0000 0.0000 0.9290
0.0000 0.0000 2.1230
0.0000 0.0000 3.8701
0.0000 0.0000 5.9510
0.0000 0.0000 7.8465

Ich möchte nun nicht die Simulationseit nicht per Serialnumber ausgegeben bekommen, sondern per datestr das genaue Datum mit Zeit ausgeben. Wie mache ich das ?

Das Programm-Ende sieht folgendermaßen aus:

% Daten in die Ergebnismatrix eintragen

tempResult(i,1) = i;
tempResult(i,2) = presentSimulationTime;
tempResult(i,3) = power;

end;

ResultMatrix = tempResult;
save -ascii -tabs Januar.csv ResultMatrix


Gruß
Biba


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 28.04.2008, 17:09     Titel:
  Antworten mit Zitat      
Moin,

schau dir mal die Funktion
Code:
an.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Biba

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2008, 17:14     Titel:
  Antworten mit Zitat      
ja die Funktion ist mir schon geläufig. Problem ist aber, mit datestr gibt mir Matlab Simulationzeit separat aus und danach erzeugt es mir die Matrix, aber in der Matrix ist die Simulationszeit immer noch in "serial number" und dort soll ja die Konvertierung stattfinden.

Anscheinend muss ich die Ausgabe mit datestr zu modifizieren, dass in der Matrix die Simulationszeit geändert wird. Leider weiß ich nicht wie.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.029
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 28.04.2008, 18:20     Titel:
  Antworten mit Zitat      
Ich verstehe dich nicht ganz...

Matlab gibt dir die Simulationszeit? Wie denn, durch welche Code-Zeile?

Du müsstest etwas genauer sagen, in welchem Format die Zeit im Moment in der Matrix abgespeichert wird... weil die 0-en im Beispiel sind nicht sehr aussagekräftig!
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Biba

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2008, 20:43     Titel:
  Antworten mit Zitat      
Als Ausgabe der Funktion erhalte ich ne Matrix mit den jeweiligen o.g. Spalten. Die presentSimulationtime soll aba nicht als "serial number" ausgegeben werden sondern als richtiges Datum.

Das mit den nullen war n schlechtes Beispiel. Hier eine andere Ausgabe

3.6450000e+003 2.1632813e+001 1.2523691e+003
3.6460000e+003 2.1632986e+001 1.2335229e+003
3.6470000e+003 2.1633160e+001 1.2317077e+003
3.6480000e+003 2.1633333e+001 1.2145415e+003

Erste Spalte ist der Index. Die zweite Spalte die Simulationszeit. Und ich möchte in der Ausgabe anstatt der serial number das richtige Datum dortstehen haben.

Zum Bespiel der erste Eintrag. 2.1632813e+001 ist gleich 21-Jan-0000 15:11:15

Aber ich will genau die zweite Darstellung und nicht die lange Zahl als Simulationszeit in der Ausgabe. So also:

3.6450000e+003 21-Jan-0000 15:11:15 1.2523691e+003


Das ist hie nicht das der komplette Code sondern nur das Ende, wo die Daten in die Matrix geschrieben werden. Der gesamte Code ist ziemlich lang. Sollt eigentlich nur wissen wie ich das ändern muss so dass ich die normal Datumsdarstellung in der Ausgabe bekomme.

% Daten in die Ergebnismatrix eintragen

tempResult(i,1) = i;
tempResult(i,2) = presentSimulationTime;
tempResult(i,3) = power;


end;

ResultMatrix = tempResult;
save -ascii -tabs blubb.csv ResultMatrix

Matlab gibt mir nicht die Simulationszeit. Diese wird im Code berechnet, anhand einer Eingabe. Die Eingabe ist Startzeit, Stopzeit.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 28.04.2008, 21:35     Titel:
  Antworten mit Zitat      
Komisch, ich verstehe es auch nicht warum es mit datestr nicht fuktioniert.
Denn so wie du beschreibst ist das die richtige Funktion für dich.

Code:

tempResult(i,2) = datestr(presentSimulationTime,'dd-mm-yyyy HH:MM:SS');
 


Oder was läuft denn schief?
Private Nachricht senden Benutzer-Profile anzeigen
 
Biba

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2008, 08:41     Titel:
  Antworten mit Zitat      
Das Problem scheint das zu sein, dass Matlab keinen String in der Matrix abbilden will ... deshalb bekomme ich auch mit:

tempResult(i,2) = datestr(presentSimulationTime,'dd-mm-yyyy HH:MM:SS');

stets eine Fehlermeldung. Falls jemand viell. wie ich in Matlab in Matrizen auch Strings darstellen kann, wäre ich demjenigen sehr verbunden. Ansonsten muss ich die Datumsanzeige manuell in die jeweiligen Ausgangsdateien kopieren.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.04.2008, 08:58     Titel:
  Antworten mit Zitat      
Ach so.
Natürlich wird es nicht klappen!
du willst unterschiedlich Formate in ein Double-Array/Matrix packen. Hier dürfen nur die gleichen Einheiten gesetzt werden.

Das ist nur in Cell-Array/Marix möglich

Code:

tempResult{i,1} = i;
tempResult{i,2} = datestr(presentSimulationTime,'dd-mm-yyyy HH:MM:SS');
tempResult{i,3} = power;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Biba

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2008, 09:09     Titel:
  Antworten mit Zitat      
schade macht er nicht. Jetzt mekert er

Code:
??? Cell contents assignment to a non-cell array object.


bei allen drei Variablen (i, presentSimulationTime und power)
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.04.2008, 09:34     Titel:
  Antworten mit Zitat      
Kannst du dann mehr Code posten?
Ich sehe zumindest zu diesem Zeitpunkt nicht, wo das Problem liegt.

weil ich das so ausprobiere, dann funktioniert. Also liegt das Problem an irgend einer anderen Stelle
Code:

 tempResult{1,1} = 1;
tempResult{1,2} = datestr(now,'dd-mm-yyyy HH:MM:SS');
tempResult{1,3} = 3;
 tempResult{2,1} = 2;
tempResult{2,2} = datestr(now,'dd-mm-yyyy HH:MM:SS');
tempResult{2,3} = 3;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Biba

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2008, 09:39     Titel:
  Antworten mit Zitat      
danke für die Hilfe ... ich hatte das Cell Array an der falschen Stelle initialisiert. Hab die Initialisierung nun vor der Schleife gesetzt, die weiter oben im Code steht. Jetzt klappt es auch wunderbar Smile
 
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 - 2024 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.