|
|
Spalte mit Datum aus Excel-Tabelle einlesen |
|
mia_1992 |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 26.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.01.2018, 22:03
Titel: Spalte mit Datum aus Excel-Tabelle einlesen
|
|
Hallo zusammen, ich brauche dringend eure Hilfe
Ich habe eine Excel-Tabelle von einem Experiment vorliegen mit jeweils vier Spalten und 1550 Zeilen. Die erste Spalte ist immer ein Datum in der Form dd.mm.yyyy HH:MM:SS.
Ich möchte nun eine Function schreiben wo als erstes eine Eingabe für einen Zeitraum erfolgen soll z.B. 10.04.2014 02:15:30 - 20.05.2014 12:00:00. Danach soll der eingegebene Zeitraum mit den restlichen 3 Werten aus den anderen Zeilen ausgegeben werden.
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.01.2018, 22:34
Titel:
|
|
Hallo,
und was hast du versucht?
Mein Vorschlag wäre:
- als Table einlesen (readtable)
- in Timetable umwandeln (table2timetable)
- Zeitraum bilden (timerange)
- Den Zeitraum als Zeilenindex in den Timetable verwenden.
Grüße,
Harald
P.S.: bitte keine Doppelposts.
|
|
|
mia_1992 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 26.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.01.2018, 01:33
Titel:
|
|
Als erstes habe ich diese funktion benutzt:
T = readtable(file)
beim umwandeln habe ich diese funktion benutzt:
TT = table2timetable(T)
In der Ausgabe habe ich jedoch komische Werte bekommen.
Meine einzulesende Excel ist in vier Spalten unterteilt:
1. timestamp(Datumsangabe) 2. Watt 3. Temperatur 4. Prognose.
Muss ich hier irgendwas bei der funktion angeben, dass die erste Spalte das Datum enthält?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 28.01.2018, 10:13
Titel:
|
|
Hallo,
was heißt denn "komische Werte"?
Am einfachsten wäre es, wenn du mal einen Dateiausschnitt zur Verfügung stellst.
Grüße,
Harald
|
|
|
mia_1992 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 26.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2018, 09:46
Titel:
|
|
Als erstes habe ich die Excel eingelesen (Den Aufbau der Excel-Datei ,die ich nun verwenden will habe ich hochgeladen) und dann versucht umzuwandeln:
T= readtable('file.xlsx')
TT = table2timetable(T)
disp(T);
Wenn ich mir das Zwischenergebnis hier anschauen will kommen diese sieben "komischen Werte" heraus :
25478 '10.04.2016 23:00:00' 0 1 9.7 2 08.04.2016 12:41:41
Wenn dies klappen würde dann hätte ich mir mit
TR = timerange('05-10-2016','10-04-2016');
TT2 = TT(TR,: );
den Zeitraum ausgeben lassen. Wäre das so richtig?
Vielen Dank schon mal für die Antwort im vorraus
Beschreibung: |
|
Download |
Dateiname: |
Unbenannt.JPG |
Dateigröße: |
25.07 KB |
Heruntergeladen: |
276 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.01.2018, 10:17
Titel:
|
|
Hallo,
hänge doch bitte wirklich den Ausschnitt der Datei an. Ich würde das gerne ausprobieren und habe jetzt nicht vor, das abzutippen...
Die Argumente von timerange müsstest du vertauschen.
Grüße,
Harald
|
|
|
mia_1992 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 26.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2018, 10:33
Titel:
|
|
|
|
|
Das is tbis jetzt mein Code:
T= readtable('FILE.xlsx')
TT = table2timetable(T)
TR = timerange('2016-05-05','2016-05-10');
TT2 = TT(TR,: );
disp(TT2);
+ die ersten drei Tage aus meiner Excel:
forecast_timestamp Lastgang Reell EFH / h in W Leistungsdaten Prognose [W] Leistungsdaten Reell [W]
09.04.2016 00:00 431,7068431 0 0
09.04.2016 01:00 332,2799858 0 0
09.04.2016 02:00 274,1667019 0 0
09.04.2016 03:00 258,3955453 0 0
09.04.2016 04:00 254,6813236 0 0
09.04.2016 05:00 266,4525492 0 0
09.04.2016 06:00 345,7654676 0 0
09.04.2016 07:00 550,3333694 0,082160811 1,109170946
09.04.2016 08:00 765,2439501 15,59001385 18,81140231
09.04.2016 09:00 887,4132724 44,01765439 34,84303051
09.04.2016 10:00 963,5833878 74,62255641 66,99871784
09.04.2016 11:00 1013,982519 104,1593679 65,37261846
09.04.2016 12:00 1070,381547 127,1027743 82,38675303
09.04.2016 13:00 1047,181947 137,3523355 118,2670638
09.04.2016 14:00 951,6978785 132,443227 60,23072105
09.04.2016 15:00 877,4134448 127,8011412 75,99874999
09.04.2016 16:00 864,7279492 101,0372571 72,34601728
09.04.2016 17:00 940,6123553 82,22243141 44,01080765
09.04.2016 18:00 1081,638495 59,50496722 52,29535607
09.04.2016 19:00 1168,77985 35,7399527 25,50066165
09.04.2016 20:00 1064,38165 13,53599358 7,699152645
09.04.2016 21:00 869,4707246 0,143781419 0,263599268
09.04.2016 22:00 817,8144723 0 0
09.04.2016 23:00 687,588146 0 0
10.04.2016 00:00 495,4200304 0 0
10.04.2016 01:00 365,7651228 0 0
10.04.2016 02:00 287,3664744 0 0
10.04.2016 03:00 260,3955108 0 0
10.04.2016 04:00 253,8813374 0 0
10.04.2016 05:00 254,4527561 0 0
10.04.2016 06:00 268,8525078 0 0
10.04.2016 07:00 385,4219268 0,020540203 1,393310416
10.04.2016 08:00 653,9887252 5,135050675 18,59915354
10.04.2016 09:00 937,9266873 13,98787804 51,15195146
10.04.2016 10:00 1088,095527 37,36262871 82,41756333
10.04.2016 11:00 1206,207776 51,94617263 109,1540605
10.04.2016 12:00 1221,636082 64,14705303 128,7665307
10.04.2016 13:00 991,2971958 94,99843749 139,3892389
10.04.2016 14:00 801,0147619 98,9216162 139,4782464
10.04.2016 15:00 711,6448741 95,45032195 130,485061
10.04.2016 16:00 630,9034089 85,07751958 114,4534328
10.04.2016 17:00 656,9601026 69,30264391 85,57390782
10.04.2016 18:00 808,6717728 60,0800929 54,64378592
10.04.2016 19:00 946,097975 36,29453817 26,43181751
10.04.2016 20:00 909,8128863 15,85703648 6,326382432
10.04.2016 21:00 846,1568408 0,267022635 0,171168356
10.04.2016 22:00 750,3870633 0 0
10.04.2016 23:00 552,4476187 0 0
11.04.2016 00:00 389,9932765 0 0
11.04.2016 01:00 288,1093187 0 0
11.04.2016 02:00 259,3669571 0 0
11.04.2016 03:00 252,5099324 0 0
11.04.2016 04:00 258,052694 0 0
11.04.2016 05:00 308,2232577 0 0
11.04.2016 06:00 544,276331 0 0
11.04.2016 07:00 759,8154722 0,22594223 1,728800394
11.04.2016 08:00 805,1861186 17,43863209 15,16209296
11.04.2016 09:00 796,2148447 46,01005405 54,03784994
11.04.2016 10:00 773,3580959 76,69711688 84,39626953
11.04.2016 11:00 780,3865461 106,2339284 113,1525533
11.04.2016 12:00 876,0991818 130,9437922 106,0353731
11.04.2016 13:00 853,0138655 147,4786554 132,5596215
11.04.2016 14:00 742,501485 153,4763946 135,6748856
11.04.2016 15:00 664,2171203 148,0537811 109,2362213
11.04.2016 16:00 621,8178513 132,032423 111,368979
11.04.2016 17:00 681,3596819 106,1517676 76,52252516
11.04.2016 18:00 848,328232 78,27871249 28,85556143
11.04.2016 19:00 1006,954069 46,89328276 7,319158895
11.04.2016 20:00 984,3258874 18,54780304 0,215672128
11.04.2016 21:00 913,4128242 0,349183446 0
11.04.2016 22:00 794,7862979 0 0
11.04.2016 23:00 587,0755931 0 0
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.01.2018, 11:10
Titel:
|
|
Hallo,
hänge bitte die Datei als Excel-Datei an.
Die Formatierung der Zellen in Excel kann einen Einfluss darauf haben, wie das in MATLAB importiert wird.
Grüße,
Harald
|
|
|
mia_1992 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 26.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2018, 11:30
Titel:
|
|
Hiervon das Blatt Prognose Teil 2 .
Danke für die Bemühungen
Beschreibung: |
|
Download |
Dateiname: |
File (2).xls |
Dateigröße: |
3.47 MB |
Heruntergeladen: |
453 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.01.2018, 11:39
Titel:
|
|
Hallo,
ich weiß nicht, was MATLAB standardmäßig ausgelesen hat, aber es war nicht das richtige Blatt. So klappt's bei mir:
Mir fällt auf, dass in deinem Code .xlsx steht, die Datei aber .xls ist. Leider kann auch sowas einen Unterschied machen. Ansonsten noch die MATLAB-Version --- ich habe R2017b verwendet.
Grüße,
Harald
|
|
|
mia_1992 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 26.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2018, 11:59
Titel:
|
|
Super jetzt klappt es vielen Dank dafür
Eine letzte Frage habe ich dazu noch ^^
Gibt es jetzt noch eine Möglichkeit die ganzen Daten aus den Zeilen in einem Array zu speichern damit ich damit weitere Berechnungen durchführen kann?
Am Ende sollte das ungefähr so aussehen: nData=size(A,1) wobei dann A den ausgewählten Zeitbereich hat den wir vorher ausgewählt haben
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.01.2018, 12:49
Titel:
|
|
Hallo,
Zitat: |
Gibt es jetzt noch eine Möglichkeit die ganzen Daten aus den Zeilen in einem Array zu speichern damit ich damit weitere Berechnungen durchführen kann? |
table2array
dürfte helfen. Falls nicht, bitte genauer erklären, was du da meinst.
Zitat: |
Am Ende sollte das ungefähr so aussehen: nData=size(A,1) wobei dann A den ausgewählten Zeitbereich hat den wir vorher ausgewählt haben |
Wenn's dir nur darum geht:
height(TT2)
?
Grüße,
Harald
|
|
|
mia_1992 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 26.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2018, 13:54
Titel:
|
|
|
|
|
Super danke ich habe table2array bei mir eingebaut.
Ich habe jetzt noch zu Beginn einen Input für die Zeitangaben eingebaut damit die Funktion noch ein wenig benutzerfreundlicher wird. Jedoch übernimmt die funktion die gegeben Werte leider nicht. MATLab gibt mir diese Meldung aus:
Error in Untitled (line 10)
TR = timerange('x''y');
Hier einmal mein vollständiges Programm bis jetzt:
%Eingabe: Anfangsdatum (Bsp: 2016-05-05)
x=input('Bitte geben sie das Anfangsdatum ein: ','s');
%Eingabe: Endwert des Zeitraums (Bsp: 2016-05-10)
y=input('Bitte geben Sie das Ende des Zeitraums an: ','s');
%Daten werden in eine Table eingelesen
T = readtable('File).xls', 'Sheet', 'Prognose Teil 2') ;
%Tabelle wird in Timetable umgewandelt
TT = table2timetable(T) ;
%Auswahl des Zeitraums der Daten
TR = timerange('x''y');
TT2 = TT(TR,: );
%Tabelle in Array speichern
A = table2array(TT2)
%Anweisung (Daten gültig=Rechnung beginnt/Daten ungültig=Fehlermeldung)
if isempty(A)
disp('DIE EINGEGEBENEN DATEN SIND NICHT VORHANDEN')
else
disp('DIE RECHNUNG BEGINNT')
end
%A kann für die Rechnung weiterverwendet werden
disp(A);
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.432
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.01.2018, 14:12
Titel:
|
|
Hallo,
das sollte so aussehen:
Du willst ja die Variablen x und y nutzen, nicht die Zeichenketten, die nur aus diesem einen Buchstaben bestehen.
Bitte in Zukunft bei Fehlermeldungen die komplette Meldung angeben und die Code-Umgebung verwenden.
Grüße,
Harald
|
|
|
mia_1992 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 26.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.01.2018, 14:50
Titel:
|
|
Perfekt jetzt funktioniert es. Vielen Dank für die ganze Hilfe und Bemühungen
das hat mir echt weitergeholfen
|
|
|
|
|
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.
|
|