Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Mehrere Excel-Tabellen in Matlab abhängig von Datum und Zeit einlesen
Autor
Universität/Hochschule Mehrere Excel-Tabellen in Matlab abhängig von Datum und Zeit einlesen
Sven318
Neu Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 31.05.2017
Mitteilungen: 1
Wohnort: Nürnberg, Deutschland
  Themenstart: 2017-05-31

Hallo, als blutiger Matlab-Anfänger stehe ich vor einem Problem, welches ich zu keinem Forenbeitrag finden konnte. Ich habe mehrere Excel-Tabellen geordnet nach den Tagen der Messdatenerfassung, bspw. von 17_12_2016.xlsx bis zum 23_12_2016.xlsx. Die Tabellen besitzen die gleiche Anzahl an Spalten, wobei die Spalte A mit der Uhrzeit von 00:00:00 bis 23:59:00 in einem Abstand von 1min gegeben ist. Mein Ziel ist es, in einem Skript zu Beginn schon festzulegen, dass ich bspw. die Tabelle 18_12_2016.xlsx ab 5:00:00 bis zur Tabelle 20_12_2016.xlsx um 17:00:00 die Werte spaltenweise in Matlab einlesen kann. Derzeit schaut es bei mir so aus, dass ich jede Spalte mit Angabe des Tabellennamens einzeln einlese: [txt1,DateTime] = xlsread('17_12_2016.xlsx','A2:A582'); %Beginn der Einlesung clear('txt1') Timestamp = xlsread('17_12_2016.xlsx','B:B'); V_VEH_TRC = xlsread('17_12_2016.xlsx','E:E'); . . . GpBatBatteryVoltage = xlsread('17_12_2016.xlsx','AAK:AAK'); %Ende der Einlesung Ist es des Weiteren möglich, den Tabellennamen als Variable x zu deklarieren, sodass ich nur zu Beginn die Tabelle/n nennen muss und bei der Spalteneinlesung konstant die Variable x genannt wird? Zum Beispiel: x = [17_12_2016.xlsx ]; Timestamp = xlsread('x','B:B'); V_VEH_TRC = xlsread('x','E:E'); Könnte mir jemand weiterhelfen?


   Profil
Folgende Antworten hat der Fragensteller vermutlich noch nicht gesehen.
Er/sie war noch nicht wieder auf dem Matheplaneten
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 810
  Beitrag No.1, eingetragen 2017-06-07

Hallo Sven318, willkommen im Forum. Das folgende Skript liest alle Excel-Dateien vom Dezember 2016 ein (xx_12_16.xlsx), die nicht älter sind als der 20.12.16 sind. Für diese Dateien werden die Daten zwischen 05:00 und 17:00 Uhr in die Matrix "Data" eingelesen. Dies Umsetzung entspricht noch nicht Deinem Ziel, aber mit ein paar Anpassungen sollte es sich damit im wesentlich umsetzen lassen. \sourceon Matlab clear all [stat,excelfiles]=fileattrib('*12_2016.xlsx'); N = numel(excelfiles); Data = []; starttime = datenum('05:00:00','HH:MM:SS'); endtime = datenum('17:00:00','HH:MM:SS'); for i = 1 : N filename = strsplit(excelfiles(i).Name,'\'); filename = filename{end} if (str2num(filename(1:2))<=20) txt1 = xlsread(filename); timestamps = datenum(datestr(txt1(:,1)+datenum(1900,1,1,0,0,0)-2,'HH:MM:SS')); startindex = find(timestamps>=starttime); endindex = find(timestamps<=endtime); index = intersect(startindex,endindex); Data = [Data; txt1(index,2)]; end %datestr(txt1(:,1),'HH:MM:SS') end Data \sourceoff \quoteon(2017-05-31 14:52 - Sven318 im Themenstart) Ist es des Weiteren möglich, den Tabellennamen als Variable x zu deklarieren, sodass ich nur zu Beginn die Tabelle/n nennen muss und bei der Spalteneinlesung konstant die Variable x genannt wird? Zum Beispiel: x = [17_12_2016.xlsx ]; Timestamp = xlsread('x','B:B'); V_VEH_TRC = xlsread('x','E:E'); Könnte mir jemand weiterhelfen? \quoteoff Ja, das geht mit \sourceon Matlab x = '17_12_2016.xlsx' Timestamp = xlsread(x,'B:B'); \sourceoff


   Profil

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]