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

Excel Datei einlesen

 

Lucky177654
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 05.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2016, 14:09     Titel: Excel Datei einlesen
  Antworten mit Zitat      
Hallo habe folgendes Problem, ich möchte ein .xlsx Datei in Matlab einlesen
Dies kann man mithilfe der Funktion xlsread(Dateiname) machen.
Die xlsx. Datei welche ich einlesen möcte hat 4 Spalten. 1, 2, 4, sind Zahlenwerte. Die 4. Spalte beihaltet Datum(Mehrzahl). Diese können jedoch mithilfe der Funktion xlsread nicht gelesen werden.
Ich habe es außerdem mit der Funktion readtable versucht. Da kann ich zwar die ganze Tabelle einlesen, jedoch erhalte ich dann ja nur Strings.
Ist es möglich das Datum aus der Tabelle von Excel einzulesen?

Mfg. Lucky
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.01.2016, 14:21     Titel:
  Antworten mit Zitat      
Hallo,

das einfachste dürfte sein, wenn du das Import Tool verwendest (xls-Datei doppelklicken) und dir dann daraus ein Skript oder eine Funktion generieren lässt.

Ansonsten kannst du natürlich mit datetime die Strings in Datumsangaben umwandeln.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Lucky177654
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 05.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2016, 14:31     Titel:
  Antworten mit Zitat      
Wie kann ich aus Strings in Datumangaben umwandeln?
Weil so könnt ich die Tabelle aus Excel mithilfe von readtable einlesen und dann die Werte so umwandeln wie ich sie brauche. Jedoch bin ich bis jetzt immer am Datum geschietert Confused Confused
Private Nachricht senden Benutzer-Profile anzeigen
 
Lucky177654
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 05.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2016, 14:47     Titel:
  Antworten mit Zitat      
Hab die Datei welche ich einlesen will im Anhang.
Wenn ich das Datum mithilfe von datetime von einem String in ein Datum umwandeln möchte, wird ein Fehler gemeldet: "Function 'subsindex' is not defined for values of class 'table'.

Zitat:

data1 = readtable('18.10.2015_2.12.2015_angepasst.xlsx');
leistung = data1(:,4);
datetime1 = data1(:,3);

t = datetime(datetime1);

varlist = {'varlist','data1'};
clear(varlist{:})
Private Nachricht senden Benutzer-Profile anzeigen
 
Lucky177654
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 05.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2016, 14:49     Titel:
  Antworten mit Zitat      
ab die Datei welche ich einlesen will im Anhang.
Wenn ich das Datum mithilfe von datetime von einem String in ein Datum umwandeln möchte, wird ein Fehler gemeldet: "Function 'subsindex' is not defined for values of class 'table'.

Code:

data1 = readtable('18.10.2015_2.12.2015_angepasst.xlsx');
leistung = data1(:,4);
datetime1 = data1(:,3);

t = datetime(datetime1);

varlist = {'varlist','data1'};
clear(varlist{:})
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.01.2016, 17:35     Titel:
  Antworten mit Zitat      
Hallo,

die Datei fehlt.

Du solltest zur Indizierung { } verwenden, z.B.
Code:
datetime1 = data1{:,3};

Zudem muss u.U. bei datetime das Format angegeben werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Lucky177654
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 05.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.01.2016, 20:27     Titel:
  Antworten mit Zitat      
Haha, ja hab die Datei vergessen Embarassed

Hab das bis jetzt so gelöst:

Code:

[xlsxfile,path2xlsx] = uigetfile('*.xlsx','Bitte Datei auswählen');
data2 = fopen(fullfile(path2xlsx,xlsxfile),'r');
data1 = xlsread(xlsxfile);

leistung = data1(:,4);
datetime1 = data1(:,3);

Date = datetime1 + datenum ('30 DEC1899');

Date2 = datestr(Date);
Date3 = datetime(Date2);

varlist = {'varlist','data2','data1','xlsxfile','path2xlsx','Date2'};  
clear(varlist{:})
 


Ich habe es jetzt so weit das ich das Datum auch auslesen kann. Jedoch habe ich davor jedoch die xls-Datei geändert. Das Datum wurde in Excel in eine Zahl umgewandelt. So war es mir möglich mithilfe des Befehls xlsread alle Spalten einzulesen. Anschließend habe ich das Datum(welches noch in einem Zahlenformat befindet) mithilfe von datetime() in ein Datumformat umzuwandeln.

Ist es möglich auch ohne das Datum zuvor in Excel in ein Zahlenformat umzuwandeln das Datum in Matlab in einem datetime-Format auszulesen? Question

18.10.2015_2.12.2015_angepasst.xls
 Beschreibung:
Daten, wo das Datum nicht umgewandelt wurde

Download
 Dateiname:  18.10.2015_2.12.2015_angepasst.xls
 Dateigröße:  137.06 KB
 Heruntergeladen:  440 mal
18.10.2015_2.12.2015_angepasst1.xls
 Beschreibung:
Daten, wo das Datum mithilfe von Excel in eine Zahl geändert wurde

Download
 Dateiname:  18.10.2015_2.12.2015_angepasst1.xls
 Dateigröße:  136.96 KB
 Heruntergeladen:  464 mal
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.