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

Einlesen Datensatz

 

Ewkos
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2016, 14:20     Titel: Einlesen Datensatz
  Antworten mit Zitat      
Ich hoffe ich bin hier im richtigen Bereich. Ich möchste folgenden Datensatz einlesen:
https://archive.ics.uci.edu/ml/datasets/Adult

Leider gelingt mir das ganz und gar nicht; ich habe es schon mit importdata; textscan und textread probiert, aber jedesmal geht etwas schief.
Bei textscan liest er nur die ersten 2 Einträge. Ich arbeite mit folgendem Code:

Code:
fileID = fopen('adult.data');
 C = textscan(fileID,'%d, %s, %f, %s, %f, %s, %s, %s, %s, %s, %f, %f, %f, %s, %s','Delimiter',',');
fclose(fileID);
celldisp(C)


Bei importdata ist es dann ein 32561x1 Vektor, bei dem ich keine Ahnung habe, wie ich aus der einen Zeile 15 Spalten gewinnen kann.

Ich wäre über jede Hilfe dankbar!

Grüße
Ewkos

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

geht es um die adult.data, oder welche Daten genau?

Eine weitere Möglichkeit für tabellarische Daten wäre readtable .

Ich habe gerade kein MATLAB bei der Hand. Insofern müsstest du schon ganz genau beschreiben, an welcher Stelle zu lesen aufgehört wird.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2016, 17:13     Titel:
  Antworten mit Zitat      
Hallo,

danke für deine Antwort. Ja genau es geht um adult.data. ich habe Matlab 2010 auf meinem Rechner und da gab es wohl noch kein readtable.

Ich mache gerade das:
Code:
A = importdata('adult.data');


Dann hat A die Größe 32561x1

Also jede Zeile von A sieht etwa so aus (also jeweils ein Eintrag des Vektors):
'39, State-gov, 77516, Bachelors, 13, Never-married, Adm-clerical, Not-in-family, White, Male, 2174, 0, 40, United-States, <=50K'

Jetzt möchte ich aber jeden mit Komma getrennten Wert in einer eigenen Spalte haben. Da weis ich leider nicht wie es geht.




Hier der Code für textscan:
Code:
fclose(fileID);
fileID = fopen('adult.data');
C = textscan(fileID,'%d, %s, %f, %s, %f, %s, %s, %s, %s, %s, %f, %f, %f, %s, %s',',');
 celldisp(C)

Ich erhalte:
C{1} =
          39
C{2}{1} =
          State-gov,
C{3} =
     []

Der Rest ist auch leer.

Viele Grüße
Ewkos

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
Ewkos
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2016, 19:09     Titel:
  Antworten mit Zitat      
Ich habe den Datensatz jetzt nochmal in OpenOfficce geöffnet, um ihn dann als .csv Datei zu speichern. Dann verwende ich folgenden Code:

Code:
[age, workclass, fnlwgt, edu, edunum, martial, occu, relation, race, sex, capgain, caploss, hourspw, native, spam] = textread(...
    'adultT.csv', '%f, %s, %f, %s, %f, %s,%s,%s,%s,%s,%f,%f,%f,%s,%s','returnonerror',1);



Dann haben die Variablen folgende Belegung:

age =

39


workclass =

'State-gov,'


fnlwgt =

Empty matrix: 0-by-1


edu =

Empty cell array: 0-by-1


edunum =

Empty matrix: 0-by-1


martial =

Empty cell array: 0-by-1


occu =

Empty cell array: 0-by-1


relation =

Empty cell array: 0-by-1


race =

Empty cell array: 0-by-1


sex =

Empty cell array: 0-by-1


capgain =

Empty matrix: 0-by-1


caploss =

Empty matrix: 0-by-1


hourspw =

Empty matrix: 0-by-1


native =

Empty cell array: 0-by-1


spam =

Empty cell array: 0-by-1

Ich verstehe nicht so ganz, warum er nur eine Zeile einliest und von dieser nur die ersten beiden Werte.

[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.11.2016, 08:20     Titel:
  Antworten mit Zitat      
Hallo,

eine so alte Version habe ich nicht auf dem Rechner. Folgendes sollte funktionieren:

Code:
fileID = fopen('adult.data');
 C = textscan(fileID,'%d %s %f %s %f %s %s %s %s %s %f %f %f %s %s','Delimiter',',');
fclose(fileID);


Grüße,
Harald
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: 02.11.2016, 12:57     Titel:
  Antworten mit Zitat      
Hallo Ewkos,

Ich finde in der Dokumentation von textscan keine Kommas im Format-String, denn das sind doch die Delimiter. Versuche mal diese Kommas wegzulassen.

Bitte verwende für den Code immer die Code-Umgebung - Danke!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Ewkos
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 30.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2016, 15:57     Titel:
  Antworten mit Zitat      
Vielen Dank dir Harald, mit dem von dir geschriebenen Code funktioniert es nun!

Grüße
Ewkos
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 - 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.