|
Biba |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2008, 17:01
Titel: Datum konvertieren
|
|
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
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 28.04.2008, 17:09
Titel:
|
|
Moin,
schau dir mal die Funktion
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?
|
|
|
Biba |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2008, 17:14
Titel:
|
|
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
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 28.04.2008, 18:20
Titel:
|
|
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?
|
|
|
Biba |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.04.2008, 20:43
Titel:
|
|
|
|
|
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
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 28.04.2008, 21:35
Titel:
|
|
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.
Oder was läuft denn schief?
|
|
|
Biba |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.04.2008, 08:41
Titel:
|
|
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
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 29.04.2008, 08:58
Titel:
|
|
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
|
|
|
Biba |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.04.2008, 09:09
Titel:
|
|
schade macht er nicht. Jetzt mekert er
bei allen drei Variablen (i, presentSimulationTime und power)
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 29.04.2008, 09:34
Titel:
|
|
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
|
|
|
Biba |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.04.2008, 09:39
Titel:
|
|
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
|
|
|
|
|
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 - 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.
|
|