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

Zeitreihe aus Excel, Timeseries synchronisieren

 

3mg4

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.04.2014, 16:34     Titel: Zeitreihe aus Excel, Timeseries synchronisieren
  Antworten mit Zitat      
Hallo und einen schönen Sonnstag,

Hoffe ihr könnt helfen, sitze schon das ganze Wochenende daran...

Ich habe ein ein Excelfile mit drei Spalten (Datum, Zeit, Wert), ich habe es geschafft dieses in Matlab zu importieren.

Nun möchte ich aus diesem eine Zeitreihe (Timeseries) erstellen, und zwar so das es Matlab die Spalte Datum und Spalte Zeit als Timestamp hernimmt jeweils mit dem passenden Wert.

Wie mach ich das am besten?

Bis jetzt konnte ich zwar Zeitreihen erstellen aber immer nur so das Matlab VOR der Spalte Datum, eine Spalte Time eingefügt hat, aber das ist ja falsch ich benötige ja das Datum und die Zeit aus dem File. (hoffe das war verständlich)

Bin ein Matlab Neuling, arbeite mich schon seit Freitag abend durch die Dokumentationen, aber irgendwie will es nicht so wie ich es gerne hätte. Der größte Fehler sitzt sicher zwischen Monitor und Sessel, also der Fehler liegt sicher bei mir.
Bitte um Hilfe, vielen Dank!
Gabriel

Data.zip
 Beschreibung:
Meine importierten Werte, einmal als "cell", "double" und als Timeseries, die allerdings missglückt ist

Download
 Dateiname:  Data.zip
 Dateigröße:  357.45 KB
 Heruntergeladen:  390 mal


3mg4
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.04.14
Wohnort: Wien
Version: ---
     Beitrag Verfasst am: 06.04.2014, 16:39     Titel:
  Antworten mit Zitat      
Hab mich jetzt bei euch registriert, sehr feines Forum!
lg gabriel
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.04.2014, 20:15     Titel: Re: Zeitreihe aus Excel, Timeseries synchronisieren
  Antworten mit Zitat      
Hallo 3mg4,

Zeige uns doch mal den bisherigen Code. Dann sind Veränderungsvorschläge viel einfacher.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 06.04.2014, 21:20     Titel:
  Antworten mit Zitat      
hallo 3mg4
ich kann mich jan nur anschließen. code ist immer hilfreich. Smile sihe dazu auch den thread richtig fragen. der ist immer wichtig für neulinge hier im forum.
zu deinem problem:
ich hatte schon einmal sowas ähnliches glaub ich.
http://www.gomatlab.de/messwerte-ve.....07,highlight,datenum.html kannst dir ja mal angucken ob dir das weiter hilft.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
3mg4
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.04.14
Wohnort: Wien
Version: ---
     Beitrag Verfasst am: 07.04.2014, 10:19     Titel:
  Antworten mit Zitat      
Vielen Dank für eure Antworten!

Bisher gibt es nch nicht viel Code.

Importiert habe ich mit der Matlabs Importfunktion, da xlsread bei mir nicht funktioniert (bekanntens Problem mit Excel for Mac lt Internet)

So nun zu meinen Versuchen:

In Excel schaut das File so aus(3 Spalten viele Zeilen):

Datum / Uhrzeit / Wert
01.01.2008/15:05:15/4,64

Nach Import als Matrix
1 / 2 / 3
465213 / 0.548614 / 4,64

so nun mein Code, zusammengesucht aus der Dokumentation

Code:

>> datecol = 1;
>> Pertisau2008_Q(:,datecol) = Pertisau2008_Q(:,datecol) + datenum('01-Jan-1900');
>> datestr(Pertisau2008_Q(:,1)); % Hier würde Matlab mir ohne ; die korrekten Werte anzeigen
>> tsQ = timeseries(Pertisau2008_Q) % Timeseries tsQ (Q steht für Abfluss)
  timeseries

  Common Properties:
            Name: 'unnamed'
            Time: [24056x1 double]
        TimeInfo: [1x1 tsdata.timemetadata]
            Data: [24056x3 double]
        DataInfo: [1x1 tsdata.datametadata]

  More properties, Methods
 


Soweit so gut, nach diesem Code habe ich
Eine Matrix mit meinen Werten (Pertisau2008_Q)
Ein textfile (char) mit jeweils dem Korrekten Datum
und eine Timeseries (tsQ) die allerdings nicht mein Datum verwendet sondern bei 0 Beginnt. Und genau hier liegt der Fehler, mMn.

Wie bekomme ich Matlab dazu das Datum und die Uhrzeit aus dem Excelfile zu nehmen?

Zitat:

ich hatte schon einmal sowas ähnliches glaub ich.
http://www.gomatlab.de/messwerte-ve.....07,highlight,datenum.html kannst dir ja mal angucken ob dir das weiter hilft.


Vielen Dank für den Link! Die Suche hat ihn mir nicht ausgespuckt. Werde ihn mir aufmaerksam durchlesen und umsetzten, soweit ich das gesehen habe, die dortige Excelfile hat das selbe Format wie meine, also Datum Uhrzeit in getrennte Spalten. Schaut gut aus!

Vielen Dank und einen Guten Wochenstart!
Gabriel

EDIT:
Ich habe auch Zugang zu einem Windows Rechner mit Excel und Matlab, werde es dort mal mit xlsread versuchen.
Private Nachricht senden Benutzer-Profile anzeigen
 
3mg4
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.04.14
Wohnort: Wien
Version: ---
     Beitrag Verfasst am: 08.04.2014, 12:31     Titel:
  Antworten mit Zitat      
Hallo,

@Winkow:

Vielen Dank für den Link habe ihn durchgelesen und auch versucht ihn auf mein Beispiel umzustetzen. Leider gibt mir Matlab den Fehler
"Undefined function or variable 'raw'."

Code:

Data{Pertisau2008werte}=nan(size(raw,1)-2,2);
for k=3:size(raw,1)
Data{Pertisau2008werte}(k-2,1)=datenum([raw{k,1},' ',raw{k,2}],'dd.mm.yyyy HH:MM:SS');
end
Data{Pertisau2008werte}(:,2)=cell2mat(raw(3:end,3));
end
Undefined function or variable 'raw'.
 


Pertisau2008werte ist mein cell array, nach dem import aus Excel

Derzeit Blicke ich überhaupt nicht mehr durch, vl kann mir hier noch jemand einen Tipp geben wie ich es am besten umsetzte das mir Matlab die Zeit und das Datum als Timestamp für meine Time Series hernimmt!

Vielen Dank für eure Hilfe

Pertisau2008werte.xls
 Beschreibung:

Download
 Dateiname:  Pertisau2008werte.xls
 Dateigröße:  1.58 MB
 Heruntergeladen:  438 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.04.2014, 12:48     Titel:
  Antworten mit Zitat      
Code:
[~,~,raw] = xlsread(Files(l).name);

raw sind die eingelesenen daten aus exel. wenn du sie bei dir nicht mit dem namen raw einliest heißen sie natürlich auch nicht so.

so zb dann
Code:
[~,~,blabla]=xlsread('Pertisau2008werte.xls');
zeit=datenum({blabla{2:end,1}},'dd.mm.yyyy')+cell2mat(blabla(2:end,2));

die zeit wird automatisch beim einlesen convertiert. wenn das bei dir nicht der fall sein sollte muss man die 2. zeile vieleicht auch noch konvertieren.
in der variablen zeit sind dann die daten als datenum wert gespeichert. das lässt sich dann zb mit datestr auch wieder zurück schreiben.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
3mg4
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 06.04.14
Wohnort: Wien
Version: ---
     Beitrag Verfasst am: 14.05.2014, 16:04     Titel: Vielen Dank
  Antworten mit Zitat      
Vielen Dank für eure bzw deine (Winkow) hilfe!

Ich habe es geschafft!
Leider habe ich erst jetzt wieder die Zeit gefunden um an diesem Projekt weiter zu arbeiten. Darum die späte Antwort, verzeiht bitte.

Folgender nächster Schritt steht nun an:

Die beiden Zeitreihen (ts1 und ts2), die leider in unterschiedlichen Zeitintervallen aufgenommen worden sind, zu synchronisieren.

Allerdings so das dass Zeitintervall nicht mehr beliebig groß ist sondern so, dass ich zB für alle 5 Minuten ein Wertepaar (aus ts1 und ts2) habe.

Ist soetwas möglich?

Was ich bisher herausgefunden habe wird es wsl auf den Befehl linerp1 hinauslaufen, aber wie binde ich da meine neue Wunschzeit mit einem Intervall von zB 5 Minuten ein?

Wäre sehr nett wenn ihr ir auch nochmals hilfreiche Tipps geben könnt!

Lg
gabriel
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.